blob: 8e000ab97923b62c06192ff7ed80f518f177d548 (
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
// that would be:
// SI-5079 "Scaladoc can't link to an object (only a class or trait)"
// SI-4497 "Links in Scaladoc - Spec and implementation unsufficient"
// SI-4224 "Wiki-links should support method targets"
// SI-3695 "support non-fully-qualified type links in scaladoc comments"
// SI-6487 "Scaladoc can't link to inner classes"
// SI-6495 "Scaladoc won't pick up group name, priority and description from owner chain"
// SI-6501 "Scaladoc won't link to a @template type T as a template but as a member"
package scala.test.scaladoc.links {
import language.higherKinds
class C
trait Target {
type T
type S = String
class C
def foo(i: Int) = 2
def foo(s: String) = 3
def foo[A[_]](x: A[String]) = 5
def foo[A[_[_]]](x: A[List]) = 6
val bar: Boolean
def baz(c: scala.test.scaladoc.links.C) = 7
}
object Target {
type T = Int => Int
type S = Int
type ::[X] = scala.collection.immutable.::[X]
class C
def foo(i: Int) = 2
def foo(z: String) = 3
def foo[A[_]](x: A[String]) = 5
def foo[A[_[_]]](x: A[List]) = 6
val bar: Boolean = false
val onlyInObject = 1
def baz(c: scala.test.scaladoc.links.C) = 7
}
/**
* Links to the trait:
* - [[scala.test.scaladoc.links.Target$ object Test]]
* - [[scala.test package scala.test]]
* - [[scala.test.scaladoc.links.Target!.T trait Target -> type T]]
* - [[test.scaladoc.links.Target!.S trait Target -> type S]]
* - [[scaladoc.links.Target!.foo(i:Int)* trait Target -> def foo]]
* - [[links.Target!.bar trait Target -> def bar]]
* - [[[[Target!.foo[A[_[_]]]* trait Target -> def foo with 3 nested tparams]]]] (should exercise nested parens)
* - [[Target$.T object Target -> type T]]
* - [[Target$.S object Target -> type S]]
* - [[Target$.:: object Target -> type ::]]
* - [[Target$.foo(z:Str* object Target -> def foo]]
* - [[Target$.bar object Target -> def bar]]
* - [[[[Target$.foo[A[_[_]]]* trait Target -> def foo with 3 nested tparams]]]] (should exercise nested parens)
* - [[Target.onlyInObject object Target -> def foo]] (should find the object)
* - [[Target$.C object Target -> class C]] (should link directly to C, not as a member)
* - [[Target!.C trait Target -> class C]] (should link directly to C, not as a member)
* - [[Target$.baz(c:scala\.test\.scaladoc\.links\.C)* object Target -> def baz]] (should use dots in prefix)
* - [[Target!.baz(c:scala\.test\.scaladoc\.links\.C)* trait Target -> def baz]] (should use dots in prefix)
* - [[localMethod object TEST -> localMethod]] (should use the current template to resolve link instead of inTpl, that's the package)
* - [[#localMethod object TEST -> localMethod]] (should exercise Java-style links to empty members)
* - [[ImOutside class ImOutside (check correct lookup in EmptyPackage)]]
* - [[ImOutside.Inner#foo class ImOutside#class Inner#method foo (check correct lookup in EmptyPackage)]]
* - [[ImOutside.T class ImOutside#type T (check correct linking to templates)]]
* - [[ImOutside.T#foo class ImOutside#type T#method foo (check correct interaction between @template and links)]]
*/
object TEST {
def localMethod = 3
}
}
trait ImOutside {
/** @template */
type T <: Inner
class Inner {
def foo: Any
}
}
|