aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-21 19:56:10 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:32:40 +0100
commit3e9451d79b3e6845c4b1c0906401108a609eddf8 (patch)
tree66a01844ca1043f5dc5b16ea0c8d7da93d70479f /doc-tool/src/dotty/tools/dottydoc/model
parent384f5a0dba5c2102327015c67781462ba475e43a (diff)
downloaddotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.tar.gz
dotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.tar.bz2
dotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.zip
Fix insertion of package nodes in doc AST
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/model')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/entities.scala9
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/internal.scala62
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/java.scala24
3 files changed, 61 insertions, 34 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
index 7027a72eb..9cbd1f6c8 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
@@ -21,6 +21,13 @@ trait Entity { entity =>
def annotations: List[String]
+ def signature: String =
+ entity.name + (entity match {
+ case o: Object => "$"
+ case d: Def => d.paramLists.mkString
+ case _ => ""
+ })
+
def children: List[Entity with Members] = entity match {
case e: Entity with Members =>
e.members.collect { case e: Entity with Members if e.kind != "package" => e }
@@ -74,6 +81,8 @@ trait ReturnValue {
trait ParamList {
def list: List[NamedReference]
def isImplicit: Boolean
+
+ override def toString = list.map(_.title).mkString("(", ",", ")")
}
trait Constructors {
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/internal.scala b/doc-tool/src/dotty/tools/dottydoc/model/internal.scala
index fe21a0a0a..bf50c0232 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/internal.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/internal.scala
@@ -3,23 +3,26 @@ package model
import comment.Comment
import references._
-import dotty.tools.dotc.core.Symbols.Symbol
+import dotty.tools.dotc.core.Symbols.{ Symbol, NoSymbol }
object internal {
- trait Impl {
- var parent: Entity = NonEntity
- }
-
final case class PackageImpl(
- symbol: Symbol,
- annotations: List[String],
- name: String,
+ var symbol: Symbol,
+ var annotations: List[String],
+ var name: String,
var members: List[Entity],
- path: List[String],
- superTypes: List[MaterializableLink] = Nil,
- var comment: Option[Comment] = None
- ) extends Package with Impl
+ var path: List[String],
+ var superTypes: List[MaterializableLink] = Nil,
+ var comment: Option[Comment] = None,
+ var parent: Entity = NonEntity
+ ) extends Package
+
+ object EmptyPackage {
+ def apply(path: List[String], name: String): PackageImpl = {
+ PackageImpl(NoSymbol, Nil, name, Nil, path)
+ }
+ }
final case class TypeAliasImpl (
symbol: Symbol,
@@ -28,8 +31,9 @@ object internal {
name: String,
path: List[String],
alias: Option[Reference],
- var comment: Option[Comment] = None
- ) extends TypeAlias with Impl
+ var comment: Option[Comment] = None,
+ var parent: Entity = NonEntity
+ ) extends TypeAlias
final case class ClassImpl(
symbol: Symbol,
@@ -42,8 +46,9 @@ object internal {
constructors: List[List[ParamList]] = Nil,
superTypes: List[MaterializableLink] = Nil,
var comment: Option[Comment] = None,
- var companionPath: List[String] = Nil
- ) extends Class with Impl
+ var companionPath: List[String] = Nil,
+ var parent: Entity = NonEntity
+ ) extends Class
final case class CaseClassImpl(
symbol: Symbol,
@@ -56,8 +61,9 @@ object internal {
constructors: List[List[ParamList]] = Nil,
superTypes: List[MaterializableLink] = Nil,
var comment: Option[Comment] = None,
- var companionPath: List[String] = Nil
- ) extends CaseClass with Impl
+ var companionPath: List[String] = Nil,
+ var parent: Entity = NonEntity
+ ) extends CaseClass
final case class TraitImpl(
symbol: Symbol,
@@ -70,8 +76,9 @@ object internal {
traitParams: List[ParamList] = Nil,
superTypes: List[MaterializableLink] = Nil,
var comment: Option[Comment] = None,
- var companionPath: List[String] = Nil
- ) extends Trait with Impl
+ var companionPath: List[String] = Nil,
+ var parent: Entity = NonEntity
+ ) extends Trait
final case class ObjectImpl(
symbol: Symbol,
@@ -82,8 +89,9 @@ object internal {
path: List[String],
superTypes: List[MaterializableLink] = Nil,
var comment: Option[Comment] = None,
- var companionPath: List[String] = Nil
- ) extends Object with Impl
+ var companionPath: List[String] = Nil,
+ var parent: Entity = NonEntity
+ ) extends Object
final case class DefImpl(
symbol: Symbol,
@@ -95,8 +103,9 @@ object internal {
typeParams: List[String] = Nil,
paramLists: List[ParamList] = Nil,
var comment: Option[Comment] = None,
- implicitlyAddedFrom: Option[Reference] = None
- ) extends Def with Impl
+ implicitlyAddedFrom: Option[Reference] = None,
+ var parent: Entity = NonEntity
+ ) extends Def
final case class ValImpl(
symbol: Symbol,
@@ -107,8 +116,9 @@ object internal {
returnValue: Reference,
kind: String,
var comment: Option[Comment] = None,
- implicitlyAddedFrom: Option[Reference] = None
- ) extends Val with Impl
+ implicitlyAddedFrom: Option[Reference] = None,
+ var parent: Entity = NonEntity
+ ) extends Val
final case class ParamListImpl(
list: List[NamedReference],
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/java.scala b/doc-tool/src/dotty/tools/dottydoc/model/java.scala
index 6b4e8b06d..b30c10734 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/java.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/java.scala
@@ -54,7 +54,8 @@ object java {
"children" -> ent.children.map(_.asJava()).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"superTypes" -> ent.superTypes,
- "hasVisibleMembers" -> ent.hasVisibleMembers
+ "hasVisibleMembers" -> ent.hasVisibleMembers,
+ "signature" -> ent.signature
) ++ extras).asJava
}
@@ -73,7 +74,8 @@ object java {
"isProtected" -> ent.isProtected,
"hasVisibleMembers" -> ent.hasVisibleMembers,
"hasCompanion" -> ent.hasCompanion,
- "companionPath" -> ent.companionPath.asJava
+ "companionPath" -> ent.companionPath.asJava,
+ "signature" -> ent.signature
) ++ extras).asJava
}
@@ -92,7 +94,8 @@ object java {
"isProtected" -> ent.isProtected,
"hasVisibleMembers" -> ent.hasVisibleMembers,
"hasCompanion" -> ent.hasCompanion,
- "companionPath" -> ent.companionPath.asJava
+ "companionPath" -> ent.companionPath.asJava,
+ "signature" -> ent.signature
) ++ extras).asJava
}
@@ -111,7 +114,8 @@ object java {
"isProtected" -> ent.isProtected,
"hasVisibleMembers" -> ent.hasVisibleMembers,
"hasCompanion" -> ent.hasCompanion,
- "companionPath" -> ent.companionPath.asJava
+ "companionPath" -> ent.companionPath.asJava,
+ "signature" -> ent.signature
) ++ extras).asJava
}
@@ -129,7 +133,8 @@ object java {
"isProtected" -> ent.isProtected,
"hasVisibleMembers" -> ent.hasVisibleMembers,
"hasCompanion" -> ent.hasCompanion,
- "companionPath" -> ent.companionPath.asJava
+ "companionPath" -> ent.companionPath.asJava,
+ "signature" -> ent.signature
) ++ extras).asJava
}
@@ -146,7 +151,8 @@ object java {
"comment" -> ent.comment.map(_.asJava).asJava,
"implicitlyAddedFrom" -> ent.implicitlyAddedFrom.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "signature" -> ent.signature
).asJava
}
@@ -161,7 +167,8 @@ object java {
"comment" -> ent.comment.map(_.asJava).asJava,
"implicitlyAddedFrom" -> ent.implicitlyAddedFrom.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "signature" -> ent.signature
).asJava
}
@@ -175,7 +182,8 @@ object java {
"alias" -> ent.alias.map(_.asJava).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "signature" -> ent.signature
).asJava
}