File: SI-5533.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (39 lines) | stat: -rw-r--r-- 1,470 bytes parent folder | download | duplicates (4)
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)
  }
}