diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2016-08-24 17:25:11 +0200 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2016-10-06 17:08:03 +0200 |
commit | ade23066b1178575be24a403eae5cf234e18ecdf (patch) | |
tree | 1397c18a3f4b6e8a9b91b2adc3d1520c6ef1003e /dottydoc/src/dotty/tools | |
parent | 567798a8f66343993f93250d3261d02dccb86bfc (diff) | |
download | dotty-ade23066b1178575be24a403eae5cf234e18ecdf.tar.gz dotty-ade23066b1178575be24a403eae5cf234e18ecdf.tar.bz2 dotty-ade23066b1178575be24a403eae5cf234e18ecdf.zip |
Add `UsecasePhase` to dottydoc
Diffstat (limited to 'dottydoc/src/dotty/tools')
-rw-r--r-- | dottydoc/src/dotty/tools/dottydoc/DottyDoc.scala | 3 | ||||
-rw-r--r-- | dottydoc/src/dotty/tools/dottydoc/core/UsecasePhase.scala | 26 |
2 files changed, 28 insertions, 1 deletions
diff --git a/dottydoc/src/dotty/tools/dottydoc/DottyDoc.scala b/dottydoc/src/dotty/tools/dottydoc/DottyDoc.scala index 2d4c7abcf..dd0bb0ec4 100644 --- a/dottydoc/src/dotty/tools/dottydoc/DottyDoc.scala +++ b/dottydoc/src/dotty/tools/dottydoc/DottyDoc.scala @@ -31,7 +31,8 @@ class DocCompiler extends Compiler { List(new DocFrontEnd), List(new DocImplicitsPhase), List(new DocASTPhase), - List(DocMiniTransformations(new LinkReturnTypes, + List(DocMiniTransformations(new UsecasePhase, + new LinkReturnTypes, new LinkParamListTypes, new LinkImplicitlyAddedTypes, new LinkSuperTypes, 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) + } +} |