aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/core
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-17 14:36:58 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:32:38 +0100
commite77fe63f98099caca481f74f3613c5814fff3020 (patch)
treeeaa0aa56a4187dd34e9caadd90d4e3c83cbd45d0 /doc-tool/src/dotty/tools/dottydoc/core
parent8f85e18db4ba2be95f39ff080e988e430222d310 (diff)
downloaddotty-e77fe63f98099caca481f74f3613c5814fff3020.tar.gz
dotty-e77fe63f98099caca481f74f3613c5814fff3020.tar.bz2
dotty-e77fe63f98099caca481f74f3613c5814fff3020.zip
Implement remainder of type members
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/core')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala5
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/core/SortMembersPhase.scala25
2 files changed, 24 insertions, 6 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala b/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala
index a3e71340c..f8ffdc0aa 100644
--- a/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/core/DocASTPhase.scala
@@ -92,7 +92,10 @@ class DocASTPhase extends Phase {
/** type alias */
case t: TypeDef if !t.isClassDef =>
val sym = t.symbol
- TypeAliasImpl(sym, annotations(sym), flags(t), t.name.show.split("\\$\\$").last, path(sym), None)
+ if (sym.is(Flags.Synthetic | Flags.Param))
+ NonEntity
+ else
+ TypeAliasImpl(sym, annotations(sym), flags(t), t.name.show.split("\\$\\$").last, path(sym), alias(t.rhs.tpe))
/** trait */
case t @ TypeDef(n, rhs) if t.symbol.is(Flags.Trait) =>
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/SortMembersPhase.scala b/doc-tool/src/dotty/tools/dottydoc/core/SortMembersPhase.scala
index c8de532bb..29898b140 100644
--- a/doc-tool/src/dotty/tools/dottydoc/core/SortMembersPhase.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/core/SortMembersPhase.scala
@@ -10,23 +10,38 @@ import model.internal._
/** This DocMiniPhase sorts the members of all classes, traits, objects and packages */
class SortMembers extends DocMiniPhase {
+ private def sort(xs: List[Entity]): List[Entity] = {
+ def sortOrNil(xs: Option[List[Entity]]*) =
+ xs.map(_.getOrElse(Nil)).reduceLeft(_ ++ _).sortBy(_.name)
+
+ val map = xs.groupBy(_.kind)
+
+ val pkgs = sortOrNil(map.get("package"))
+ val typs = sortOrNil(map.get("type"))
+ val vals = sortOrNil(map.get("val"), map.get("var"))
+ val nested = sortOrNil(map.get("object"), map.get("class"), map.get("case class"), map.get("trait"))
+ val defs = sortOrNil(map.get("def"))
+
+ pkgs ++ nested ++ typs ++ vals ++ defs
+ }
+
override def transformPackage(implicit ctx: Context) = { case p: PackageImpl =>
- p.copy(members = p.members.sortBy(_.name))
+ p.copy(members = sort(p.members))
}
override def transformClass(implicit ctx: Context) = { case c: ClassImpl =>
- c.copy(members = c.members.sortBy(_.name))
+ c.copy(members = sort(c.members))
}
override def transformCaseClass(implicit ctx: Context) = { case cc: CaseClassImpl =>
- cc.copy(members = cc.members.sortBy(_.name))
+ cc.copy(members = sort(cc.members))
}
override def transformTrait(implicit ctx: Context) = { case t: TraitImpl =>
- t.copy(members = t.members.sortBy(_.name))
+ t.copy(members = sort(t.members))
}
override def transformObject(implicit ctx: Context) = { case o: ObjectImpl =>
- o.copy(members = o.members.sortBy(_.name))
+ o.copy(members = sort(o.members))
}
}