Skip to content

Commit 4e38e23

Browse files
committed
New methods for knowsubclasses
Still broken due to not whole path
1 parent 458cf4f commit 4e38e23

File tree

9 files changed

+69
-46
lines changed

9 files changed

+69
-46
lines changed

tastydoc/documentation/scala/NonEmptyTuple.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ scala
44
<pre><code class="language-scala" >sealed trait NonEmptyTuple extends Tuple</pre></code>
55
Tuple of arbitrary non-zero arity
66

7+
## Known subclasses:
8+
*:
79
## Constructors:
810
<pre><code class="language-scala" >NonEmptyTuple()</pre></code>
911

tastydoc/documentation/scala/Selectable.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ scala
22
# trait Selectable
33

44
<pre><code class="language-scala" >trait Selectable extends Any</pre></code>
5+
## Known subclasses:
6+
<a href="./reflect/Selectable.md">Selectable</a>
57
## Constructors:
68
<pre><code class="language-scala" >Selectable()</pre></code>
79

tastydoc/documentation/scala/Tuple.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ scala
66
<pre><code class="language-scala" >sealed trait Tuple extends Any</pre></code>
77
Tuple of arbitrary arity
88

9+
## Known subclasses:
10+
NonEmptyTuple
911
## Constructors:
1012
<pre><code class="language-scala" >Tuple()</pre></code>
1113

tastydoc/documentation/scala/implicits/LowPriorityNot.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ scala.implicits
22
# trait LowPriorityNot
33

44
<pre><code class="language-scala" >trait LowPriorityNot</pre></code>
5+
## Known subclasses:
6+
<a href="./Not$.md">Not</a>
57
## Constructors:
68
<pre><code class="language-scala" >LowPriorityNot()</pre></code>
79

tastydoc/src/dotty/tastydoc/Main.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ object Main {
9696
val tc = new TastydocConsumer(mutablePackagesMap)
9797
ConsumeTasty(extraClasspath, classes, tc)
9898

99+
representations.setSubClasses(mutablePackagesMap)
100+
99101
val docPrinter = new DocPrinter(mutablePackagesMap, userDocSyntax, packagesToLink)
100102

101103
mutablePackagesMap.foreach((_, v) => docPrinter.traverseRepresentation(v))

tastydoc/src/dotty/tastydoc/representations.scala

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,4 +218,25 @@ object representations extends TastyExtractor {
218218

219219
case _ => throw new Exception("Tree match error in conversion to representation. Please open an issue. " + tree)
220220
}}
221+
222+
def setSubClasses(mutablePackagesMap: scala.collection.mutable.HashMap[String, EmulatedPackageRepresentation]): Unit = {
223+
def innerLogic(representation: Representation): Unit = representation match {
224+
case r: ClassRepresentation =>
225+
r.parents.foreach{_ match {
226+
case ref@TypeReference(label, path, _, _) => mutablePackagesMap.get(path.tail.replaceAll("\\/", "\\.")) match {
227+
case Some(p) =>
228+
p.members.filter(_.name == label).foreach{_ match {
229+
case parent: ClassRepresentation => parent.knownSubclasses = TypeReference(r.name, r.path.mkString("/", "/", ""), Nil, true) :: parent.knownSubclasses
230+
case _ =>
231+
}}
232+
case None =>
233+
}
234+
case _ =>
235+
}}
236+
case r: Representation with Members => r.members.foreach(innerLogic)
237+
case _ =>
238+
}
239+
240+
mutablePackagesMap.foreach((_, v) => innerLogic(v))
241+
}
221242
}

tastydoc/test/dotty/tastydoc/Tests.scala

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -36,42 +36,42 @@ class Tests {
3636
"example.UserDocLinkingClass"
3737
))
3838
}
39-
@Test def testDotty(): Unit = {
40-
Main.main(Array(
41-
"--classpath",
42-
"tastydoc/dotty-0.16.0-RC3/lib",
43-
"--syntax",
44-
"wiki",
45-
"--packagestolink",
46-
"dotty.*",
47-
"scala.annotation.*",
48-
"scala.compiletime.*",
49-
"scala.implicits.*",
50-
"scala.internal.*",
51-
"scala.quoted.*",
52-
"scala.reflect.*",
53-
"scala.runtime.*",
54-
"scala.tasty.*",
55-
"scala.testing.*",
56-
"scalaShadowing.*",
57-
//Individual files
58-
"scala.\\$times\\$colon*",
59-
"scala.Conversion*",
60-
"scala.Enum*",
61-
"scala.Eql*",
62-
"scala.forceInline*",
63-
"scala.FunctionXXL*",
64-
"scala.IArray*",
65-
"scala.NonEmptyTuple*",
66-
"scala.Product0*",
67-
"scala.Selectable*",
68-
"scala.Tuple*",
69-
"scala.TupleXXL*",
70-
"scala.ValueOf*",
71-
"-d",
72-
"dotty",
73-
"scala",
74-
"scalaShadowing"
75-
))
76-
}
39+
// @Test def testDotty(): Unit = {
40+
// Main.main(Array(
41+
// "--classpath",
42+
// "tastydoc/dotty-0.16.0-RC3/lib",
43+
// "--syntax",
44+
// "wiki",
45+
// "--packagestolink",
46+
// "dotty.*",
47+
// "scala.annotation.*",
48+
// "scala.compiletime.*",
49+
// "scala.implicits.*",
50+
// "scala.internal.*",
51+
// "scala.quoted.*",
52+
// "scala.reflect.*",
53+
// "scala.runtime.*",
54+
// "scala.tasty.*",
55+
// "scala.testing.*",
56+
// "scalaShadowing.*",
57+
// //Individual files
58+
// "scala.\\$times\\$colon*",
59+
// "scala.Conversion*",
60+
// "scala.Enum*",
61+
// "scala.Eql*",
62+
// "scala.forceInline*",
63+
// "scala.FunctionXXL*",
64+
// "scala.IArray*",
65+
// "scala.NonEmptyTuple*",
66+
// "scala.Product0*",
67+
// "scala.Selectable*",
68+
// "scala.Tuple*",
69+
// "scala.TupleXXL*",
70+
// "scala.ValueOf*",
71+
// "-d",
72+
// "dotty",
73+
// "scala",
74+
// "scalaShadowing"
75+
// ))
76+
// }
7777
}

tastydoc/test/tests/SimpleClass.scala

Lines changed: 0 additions & 3 deletions
This file was deleted.

tastydoc/test/tests/SimpleDef.scala

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)