summaryrefslogtreecommitdiff
path: root/test/files/jvm/annotations.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-05-04 14:01:58 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-05-04 14:01:58 +0000
commit02ad6bb9666161e04e0b9ed3a8ffb6b0e2304596 (patch)
treedca5f24eb228049d81cec52d217d79050614cdbe /test/files/jvm/annotations.scala
parent7abeacab53286233d4b150e713ca253c08f38bfd (diff)
downloadscala-02ad6bb9666161e04e0b9ed3a8ffb6b0e2304596.tar.gz
scala-02ad6bb9666161e04e0b9ed3a8ffb6b0e2304596.tar.bz2
scala-02ad6bb9666161e04e0b9ed3a8ffb6b0e2304596.zip
fix and test where constructor parameter annota...
fix and test where constructor parameter annotations end up. no review
Diffstat (limited to 'test/files/jvm/annotations.scala')
-rw-r--r--test/files/jvm/annotations.scala31
1 files changed, 26 insertions, 5 deletions
diff --git a/test/files/jvm/annotations.scala b/test/files/jvm/annotations.scala
index 12760beb4e..136aae6675 100644
--- a/test/files/jvm/annotations.scala
+++ b/test/files/jvm/annotations.scala
@@ -102,17 +102,20 @@ object Test4 {
type myAnn = SourceAnnotation @beanGetter @field
@BeanProperty @myAnn("http://eppli.com") var z = 0
}
+ class Foo10(@SourceAnnotation("on param 1") val name: String)
+ class Foo11(@(SourceAnnotation @scala.annotation.target.field)("on param 2") val name: String)
+ class Foo12(@(SourceAnnotation @scala.annotation.target.setter)("on param 3") var name: String)
def run {
import java.lang.annotation.Annotation
import java.lang.reflect.AnnotatedElement
+ def printSourceAnnotation(a: Annotation) {
+ val ann = a.asInstanceOf[SourceAnnotation]
+ println("@test.SourceAnnotation(mails=" + ann.mails.deepMkString("{", ",", "}") +
+ ", value=" + ann.value + ")")
+ }
def printSourceAnnotations(target: AnnotatedElement) {
//print SourceAnnotation in a predefined way to insure
// against difference in the JVMs (e.g. Sun's vs IBM's)
- def printSourceAnnotation(a: Annotation) {
- val ann = a.asInstanceOf[SourceAnnotation]
- println("@test.SourceAnnotation(mails=" + ann.mails.deepMkString("{", ",", "}") +
- ", value=" + ann.value + ")")
- }
val anns = target.getAnnotations()
anns foreach printSourceAnnotation
if (anns.length > 0) {
@@ -120,6 +123,14 @@ object Test4 {
println
}
}
+ def printParamSourceAnnotations(target: { def getParameterAnnotations(): Array[Array[Annotation]] }) {
+ val anns = target.getParameterAnnotations().flatten
+ anns foreach printSourceAnnotation
+ if (anns.length > 0) {
+ println(target)
+ println
+ }
+ }
printSourceAnnotations(classOf[Foo1])
printSourceAnnotations(classOf[Foo2])
printSourceAnnotations(classOf[Foo3])
@@ -130,8 +141,18 @@ object Test4 {
classOf[Foo7].getDeclaredConstructors foreach printSourceAnnotations
classOf[Foo8].getDeclaredFields foreach printSourceAnnotations
classOf[Foo8].getDeclaredMethods foreach printSourceAnnotations
+ classOf[Foo8].getDeclaredConstructors foreach printParamSourceAnnotations
classOf[Foo9].getDeclaredFields.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
classOf[Foo9].getDeclaredMethods.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo10].getDeclaredFields.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo10].getDeclaredMethods.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo10].getDeclaredConstructors foreach printParamSourceAnnotations
+ classOf[Foo11].getDeclaredFields.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo11].getDeclaredMethods.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo11].getDeclaredConstructors foreach printParamSourceAnnotations
+ classOf[Foo12].getDeclaredFields.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo12].getDeclaredMethods.sortWith((x, y) => x.toString < y.toString) foreach printSourceAnnotations
+ classOf[Foo12].getDeclaredConstructors foreach printParamSourceAnnotations
}
}