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
@@ -14,11 +13,10 @@ import dotty.tools.dotc.core.Phases.Phase
1413import dotty .tools .dotc .core .StdNames ._
1514import dotty .tools .dotc .core .Symbols ._
1615import dotty .tools .dotc .reporting .diagnostic .messages
17- import dotty .tools .dotc .typer .{FrontEnd , ImportInfo }
16+ import dotty .tools .dotc .typer .{FrontEnd , ImportInfo , Typer }
1817import dotty .tools .dotc .util .Positions ._
1918import dotty .tools .dotc .util .SourceFile
2019import dotty .tools .dotc .{CompilationUnit , Compiler , Run }
21- import dotty .tools .io ._
2220import dotty .tools .repl .results ._
2321
2422import scala .collection .mutable
@@ -186,13 +184,18 @@ class ReplCompiler extends Compiler {
186184 val stat = stats.last.asInstanceOf [tpd.Tree ]
187185 if (stat.tpe.isError) stat.tpe.show
188186 else {
189- val docCtx = ctx.docCtx.get
190187 val symbols = extractSymbols(stat)
191- val doc = symbols.collectFirst {
192- case sym if docCtx.docstrings.contains(sym) =>
193- docCtx.docstrings(sym).raw
194- }
195- doc.getOrElse(s " // No doc for ` ${expr}` " )
188+ val typer = new Typer ()
189+ val doc = for {
190+ sym <- symbols
191+ owner = sym.owner
192+ cookingCtx = ctx.withOwner(owner)
193+ cooked <- typer.cookComment(sym, owner)(cookingCtx)
194+ body <- cooked.expandedBody
195+ } yield body
196+
197+ if (doc.hasNext) doc.next()
198+ else s " // No doc for ` $expr` "
196199 }
197200
198201 case _ =>
0 commit comments