diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-01-17 14:36:58 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-01-31 14:32:38 +0100 |
commit | e77fe63f98099caca481f74f3613c5814fff3020 (patch) | |
tree | eaa0aa56a4187dd34e9caadd90d4e3c83cbd45d0 /doc-tool/src/dotty/tools/dottydoc/model | |
parent | 8f85e18db4ba2be95f39ff080e988e430222d310 (diff) | |
download | dotty-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.scala | 9 | ||||
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/model/factories.scala | 9 | ||||
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/model/java.scala | 42 |
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 } |