aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
diff options
context:
space:
mode:
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala44
1 files changed, 18 insertions, 26 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala b/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
index 1cfcec09a..4980cad92 100644
--- a/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala
@@ -9,6 +9,7 @@ import dotc.core.Phases.Phase
import model._
import model.internal._
import util.syntax._
+import util.traversing._
object transform {
/**
@@ -48,30 +49,13 @@ object transform {
override def runOn(units: List[CompilationUnit])(implicit ctx: Context): List[CompilationUnit] = {
for {
- rootName <- rootPackages
+ rootName <- rootPackages(ctx.docbase.packages)
pack = ctx.docbase.packages(rootName)
transformed = performPackageTransform(pack)
} yield ctx.docbase.packagesMutable(rootName) = transformed
super.runOn(units)
}
- private def rootPackages(implicit ctx: Context): List[String] = {
- var currentDepth = Int.MaxValue
- var packs = List.empty[String]
-
- for (key <- ctx.docbase.packages.keys) {
- val keyDepth = key.split("\\.").length
- packs =
- if (keyDepth < currentDepth) {
- currentDepth = keyDepth
- key :: Nil
- } else if (keyDepth == currentDepth) {
- key :: packs
- } else packs
- }
- packs
- }
-
private def performPackageTransform(pack: Package)(implicit ctx: Context): Package = {
def transformEntity[E <: Entity](e: E, f: DocMiniPhase => E => E)(createNew: E => E): Entity = {
val transformedEntity = transformations.foldLeft(e) { case (oldE, transf) =>
@@ -91,7 +75,8 @@ object transform {
p.members.map(traverse).filterNot(_ eq NonEntity),
p.path,
p.superTypes,
- p.comment
+ p.comment,
+ p.parent
)
// Update reference in context to newPackage
@@ -107,7 +92,8 @@ object transform {
t.name,
t.path,
t.alias,
- t.comment
+ t.comment,
+ t.parent
)
}
case c: Class => transformEntity(c, _.classTransformation) { cls =>
@@ -122,7 +108,8 @@ object transform {
cls.constructors,
cls.superTypes,
cls.comment,
- cls.companionPath
+ cls.companionPath,
+ cls.parent
)
}
case cc: CaseClass => transformEntity(cc, _.caseClassTransformation) { cc =>
@@ -137,7 +124,8 @@ object transform {
cc.constructors,
cc.superTypes,
cc.comment,
- cc.companionPath
+ cc.companionPath,
+ cc.parent
)
}
case trt: Trait => transformEntity(trt, _.traitTransformation) { trt =>
@@ -152,7 +140,8 @@ object transform {
trt.traitParams,
trt.superTypes,
trt.comment,
- trt.companionPath
+ trt.companionPath,
+ trt.parent
)
}
case obj: Object => transformEntity(obj, _.objectTransformation) { obj =>
@@ -165,7 +154,8 @@ object transform {
obj.path,
obj.superTypes,
obj.comment,
- obj.companionPath
+ obj.companionPath,
+ obj.parent
)
}
case df: Def => transformEntity(df, _.defTransformation) { df =>
@@ -179,7 +169,8 @@ object transform {
df.typeParams,
df.paramLists,
df.comment,
- df.implicitlyAddedFrom
+ df.implicitlyAddedFrom,
+ df.parent
)
}
case vl: Val => transformEntity(vl, _.valTransformation) { vl =>
@@ -192,7 +183,8 @@ object transform {
vl.returnValue,
vl.kind,
vl.comment,
- vl.implicitlyAddedFrom
+ vl.implicitlyAddedFrom,
+ vl.parent
)
}
}