1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import scala.tools.nsc.doc.model._
import scala.tools.partest.ScaladocModelTest
object Test extends ScaladocModelTest {
// Working around the fact that usecases have the form Coll[T] and not Coll[T, U], as required by Map
override def code = """
package a {
class A { class Z }
class C extends b.B { class X extends Y }
}
package b {
/** @contentDiagram */
class B extends a.A { class Y extends Z }
/** @contentDiagram */
class D extends a.C { class V extends X }
}
"""
// no need for special settings
def scaladocSettings = "-diagrams -skip-packages a"
def testModel(rootPackage: Package) = {
// get the quick access implicit defs in scope (_package(s), _class(es), _trait(s), object(s) _method(s), _value(s))
import access._
// just need to check the member exists, access methods will throw an error if there's a problem
assert(!rootPackage.templates.exists(_.name == "a"), "package a should not exist in the root package")
assert(rootPackage.templates.exists(_.name == "b"), "package b should exist in the root package")
val b = rootPackage._package("b")
val B = b._class("B")
val D = b._class("D")
testDiagram(B, B.contentDiagram, 2, 1)
// unfortunately not all packages, as B1 extends A.this.A1 and it gets the wrong member -- maybe we should model
// things as we do for symbols?
testDiagram(D, D.contentDiagram, 3, 2)
}
}
|