summaryrefslogtreecommitdiff
path: root/test/scaladoc/run/implicits-var-exp.scala
blob: 94d2990d294cdee6d42b1db72a8f29925f5a56e9 (plain) (blame)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import scala.tools.nsc.doc.model._
import scala.tools.nsc.doc.model.diagram._
import scala.tools.partest.ScaladocModelTest

object Test extends ScaladocModelTest {

  override def code = """
        package scala.test.scaladoc.variable.expansion {
          /** @define coll WROOOONG-A */
          class A

          object A {
            import language.implicitConversions
            implicit def aToC(a: A) = new C
            implicit def aToE(a: A) = new E with F
          }

          /** @define coll WROOOONG-B */
          class B {
            /** foo returns a $coll */
            def foo: Nothing = ???
          }

          /** @define coll collection */
          class C extends B

          /** @define coll WROOOONG-D */
          trait D {
            /** bar returns a $coll */
            def bar: Nothing = ???
          }

          /** @define coll result */
          //trait E { self: D => override def bar: Nothing = ??? }
          trait E extends D { override def bar: Nothing = ??? }

          /** @define coll WROOOONG-F */
          trait F
        }
    """

  // diagrams must be started. In case there's an error with dot, it should not report anything
  def scaladocSettings = "-implicits"

  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._

    val base = rootPackage._package("scala")._package("test")._package("scaladoc")._package("variable")._package("expansion")
    val foo = base._class("A")._method("foo")
    assert(foo.comment.get.body.toString.contains("foo returns a collection"), "\"" + foo.comment.get.body.toString + "\".contains(\"foo returns a collection\")")

    val bar = base._class("A")._method("bar")
    assert(bar.comment.get.body.toString.contains("bar returns a result"), "\"" + bar.comment.get.body.toString + "\".contains(\"bar returns a result\")")
  }
}