blob: 2495102899658746950c7a29f9811921264319da (
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
|
/*
* filter: inliner warning\(s\); re-run with -Yinline-warnings for details
*/
import scala.tools.partest._
import scala.tools.nsc._
object Test extends CompilerTest {
import global._
import definitions._
override def code = """
package ano
class ann(x: Any) extends annotation.TypeConstraint
abstract class Base {
def foo(x: String): String @ann(x.trim())
}
class Sub extends Base {
def foo(x: String): String @ann(x.trim()) = x
}
"""
object syms extends SymsInPackage("ano")
import syms._
def check(source: String, unit: global.CompilationUnit) {
exitingTyper {
terms.filter(_.name.toString == "foo").foreach(sym => {
val xParam = sym.tpe.paramss.flatten.head
val annot = sym.tpe.finalResultType.annotations.head
val xRefs = annot.args.head.filter(t => t.symbol == xParam)
println(s"testing symbol ${sym.ownerChain}, param $xParam, xRefs $xRefs")
assert(xRefs.length == 1, xRefs)
})
}
}
}
|