aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala
diff options
context:
space:
mode:
Diffstat (limited to 'dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala')
-rw-r--r--dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala26
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)
+ }
+}