11package dotty .tools .repl
22
3- import dotty .tools .backend .jvm .GenBCode
43import dotty .tools .dotc .ast .Trees ._
54import dotty .tools .dotc .ast .{tpd , untpd }
65import dotty .tools .dotc .ast .tpd .TreeOps
@@ -15,11 +14,10 @@ import dotty.tools.dotc.core.StdNames._
1514import dotty .tools .dotc .core .Symbols ._
1615import dotty .tools .dotc .reporting .diagnostic .messages
1716import dotty .tools .dotc .transform .PostTyper
18- import dotty .tools .dotc .typer .{FrontEnd , ImportInfo }
17+ import dotty .tools .dotc .typer .{FrontEnd , ImportInfo , Typer }
1918import dotty .tools .dotc .util .Positions ._
2019import dotty .tools .dotc .util .SourceFile
2120import dotty .tools .dotc .{CompilationUnit , Compiler , Run }
22- import dotty .tools .io ._
2321import dotty .tools .repl .results ._
2422
2523import scala .collection .mutable
@@ -196,13 +194,18 @@ class ReplCompiler extends Compiler {
196194 val stat = stats.last.asInstanceOf [tpd.Tree ]
197195 if (stat.tpe.isError) stat.tpe.show
198196 else {
199- val docCtx = ctx.docCtx.get
200197 val symbols = extractSymbols(stat)
201- val doc = symbols.collectFirst {
202- case sym if docCtx.docstrings.contains(sym) =>
203- docCtx.docstrings(sym).raw
204- }
205- doc.getOrElse(s " // No doc for ` ${expr}` " )
198+ val typer = new Typer ()
199+ val doc = for {
200+ sym <- symbols
201+ owner = sym.owner
202+ cookingCtx = ctx.withOwner(owner)
203+ cooked <- typer.cookComment(sym, owner)(cookingCtx)
204+ body <- cooked.expandedBody
205+ } yield body
206+
207+ if (doc.hasNext) doc.next()
208+ else s " // No doc for ` $expr` "
206209 }
207210
208211 case _ =>
0 commit comments