diff options
Diffstat (limited to 'dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala')
-rw-r--r-- | dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala b/dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala new file mode 100644 index 000000000..758d65e92 --- /dev/null +++ b/dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala @@ -0,0 +1,26 @@ +package dotty.tools +package dottydoc +package core + +import dotc.core.Contexts.Context +import dotc.ast.tpd + +import transform.DocMiniPhase +import model.internal._ +import model.factories._ +import dotty.tools.dotc.core.Symbols.Symbol + +class UsecasePhase extends DocMiniPhase { + private def defdefToDef(d: tpd.DefDef, sym: Symbol)(implicit ctx: Context) = DefImpl( + sym, + d.name.decode.toString, + flags(d), path(d.symbol), + returnType(d.tpt.tpe), + typeParams(d.symbol), + paramLists(d.symbol.info) + ) + + override def transformDef(implicit ctx: Context) = { case df: DefImpl => + ctx.docbase.docstring(df.symbol).flatMap(_.usecases.headOption.map(_.tpdCode)).map(defdefToDef(_, df.symbol)).getOrElse(df) + } +} |