diff options
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/core/PackageObjectsPhase.scala')
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/core/PackageObjectsPhase.scala | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/PackageObjectsPhase.scala b/doc-tool/src/dotty/tools/dottydoc/core/PackageObjectsPhase.scala new file mode 100644 index 000000000..adcadb0ba --- /dev/null +++ b/doc-tool/src/dotty/tools/dottydoc/core/PackageObjectsPhase.scala @@ -0,0 +1,35 @@ +package dotty.tools +package dottydoc +package core + +import dotty.tools.dotc.core.Symbols.Symbol +import dotc.core.Contexts.Context +import dotc.ast.tpd + +import model._ +import model.internal._ +import util.syntax._ +import transform.DocMiniPhase + +class PackageObjectsPhase extends DocMiniPhase { + + override def transformPackage(implicit ctx: Context) = { case pkg: PackageImpl => + pkg + .members + .collect { case o: Object if o.symbol.isPackageObject => o } + .headOption + .map { obj => + pkg.copy( + members = obj.members ++ pkg.members, + superTypes = obj.superTypes, + comment = obj.comment + ) + } + .getOrElse(pkg) + } + + override def transformObject(implicit ctx: Context) = { case obj: Object => + if (obj.symbol.isPackageObject) NonEntity + else obj + } +} |