aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model
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/model
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/model')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/entities.scala9
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/factories.scala9
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/java.scala42
3 files changed, 47 insertions, 13 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
index e9d388c3b..a04898740 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala
@@ -46,15 +46,20 @@ trait SuperTypes {
trait Members {
def members: List[Entity]
+
+ def hasVisibleMembers: Boolean = members.exists {
+ case e: Entity with Modifiers => !(e.isPrivate || e.isProtected)
+ case e => true
+ }
}
trait Modifiers {
def modifiers: List[String]
- val isPrivate: Boolean =
+ def isPrivate: Boolean =
modifiers.contains("private")
- val isProtected: Boolean =
+ def isProtected: Boolean =
modifiers.contains("protected")
}
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala
index 8f1fad4a7..ad6bf7bae 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala
@@ -37,6 +37,15 @@ object factories {
private val product = """Product[1-9][0-9]*""".r
+ def alias(t: Type)(implicit ctx: Context): Option[Reference] = {
+ val defn = ctx.definitions
+ t match {
+ case TypeBounds(low, high) if (low eq defn.NothingType) && (high eq defn.AnyType) =>
+ None
+ case t => Some(returnType(t))
+ }
+ }
+
def returnType(t: Type)(implicit ctx: Context): Reference = {
val defn = ctx.definitions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/java.scala b/doc-tool/src/dotty/tools/dottydoc/model/java.scala
index 331699957..8e493f889 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/java.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/java.scala
@@ -51,7 +51,8 @@ object java {
"name" -> ent.name,
"path" -> ent.path.asJava,
"members" -> ent.members.map(_.asJava()).asJava,
- "comment" -> ent.comment.map(_.asJava).asJava
+ "comment" -> ent.comment.map(_.asJava).asJava,
+ "hasVisibleMembers" -> ent.hasVisibleMembers
) ++ extras).asJava
}
@@ -67,7 +68,8 @@ object java {
"superTypes" -> ent.superTypes.map(_.asJava).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "hasVisibleMembers" -> ent.hasVisibleMembers
) ++ extras).asJava
}
@@ -83,7 +85,8 @@ object java {
"superTypes" -> ent.superTypes.map(_.asJava).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "hasVisibleMembers" -> ent.hasVisibleMembers
) ++ extras).asJava
}
@@ -99,7 +102,8 @@ object java {
"superTypes" -> ent.superTypes.map(_.asJava).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "hasVisibleMembers" -> ent.hasVisibleMembers
) ++ extras).asJava
}
@@ -114,7 +118,8 @@ object java {
"superTypes" -> ent.superTypes.map(_.asJava).asJava,
"comment" -> ent.comment.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
- "isProtected" -> ent.isProtected
+ "isProtected" -> ent.isProtected,
+ "hasVisibleMembers" -> ent.hasVisibleMembers
) ++ extras).asJava
}
@@ -137,19 +142,33 @@ object java {
implicit class JavaVal(val ent: Val) extends AnyVal {
def asJava: JMap[String, _] = Map(
- "kind" -> ent.kind,
+ "kind" -> ent.kind,
"annotations" -> ent.annotations.asJava,
- "name" -> ent.name,
- "modifiers" -> ent.modifiers.asJava,
- "path" -> ent.path.asJava,
- "returnValue" -> ent.returnValue.asJava,
- "comment" -> ent.comment.map(_.asJava).asJava,
+ "name" -> ent.name,
+ "modifiers" -> ent.modifiers.asJava,
+ "path" -> ent.path.asJava,
+ "returnValue" -> ent.returnValue.asJava,
+ "comment" -> ent.comment.map(_.asJava).asJava,
"implicitlyAddedFrom" -> ent.implicitlyAddedFrom.map(_.asJava).asJava,
"isPrivate" -> ent.isPrivate,
"isProtected" -> ent.isProtected
).asJava
}
+ implicit class JavaTypeAlias(val ent: TypeAlias) extends AnyVal {
+ def asJava: JMap[String, _] = Map(
+ "kind" -> ent.kind,
+ "annotations" -> ent.annotations.asJava,
+ "modifiers" -> ent.modifiers.asJava,
+ "name" -> ent.name,
+ "path" -> ent.path.asJava,
+ "alias" -> ent.alias.map(_.asJava).asJava,
+ "comment" -> ent.comment.map(_.asJava).asJava,
+ "isPrivate" -> ent.isPrivate,
+ "isProtected" -> ent.isProtected
+ ).asJava
+ }
+
implicit class JavaParamList(val pl: ParamList) extends AnyVal {
def asJava: JMap[String, _] = Map(
"list" -> pl.list.map(_.asJava).asJava,
@@ -255,6 +274,7 @@ object java {
case ent: Object => ent.asJava(extras)
case ent: Def => ent.asJava
case ent: Val => ent.asJava
+ case ent: TypeAlias => ent.asJava
case _ => Map.empty.asJava
}