Skip to content

Commit 45872eb

Browse files
committed
Typecheck usecases
1 parent 39c2da6 commit 45872eb

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/dotty/tools/dotc/typer/Namer.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,14 @@ class Namer { typer: Typer =>
426426
}
427427

428428
def setDocstring(sym: Symbol, tree: Tree)(implicit ctx: Context) = tree match {
429-
case t: MemberDef => ctx.docbase.addDocstring(sym, t.rawComment)
429+
case t: MemberDef if t.rawComment.isDefined =>
430+
val cmt = t.rawComment
431+
ctx.docbase.addDocstring(sym, cmt)
432+
433+
cmt.get.usecases.foreach { usecase =>
434+
usecase.symbol = enterSymbol(createSymbol(usecase.untpdCode))
435+
}
436+
430437
case _ => ()
431438
}
432439

src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,6 +1119,10 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
11191119
// function types so no dependencies on parameters are allowed.
11201120
tpt1 = tpt1.withType(avoid(tpt1.tpe, vparamss1.flatMap(_.map(_.symbol))))
11211121
}
1122+
1123+
/** Type usecases */
1124+
ctx.docbase.docstring(sym).map(_.usecases.map(_.typeTree()))
1125+
11221126
assignType(cpy.DefDef(ddef)(name, tparams1, vparamss1, tpt1, rhs1), sym)
11231127
//todo: make sure dependent method types do not depend on implicits or by-name params
11241128
}

0 commit comments

Comments
 (0)