summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-05-07 07:51:27 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-05-07 07:51:27 +0000
commitaa09cc3505096294b40949246d1906c760b914dc (patch)
tree7c5b52a35f8cb4ad543d9cfd056fccb491b0b559
parentc55b106f503d5e712e69823cfeb1cab2460221eb (diff)
downloadscala-aa09cc3505096294b40949246d1906c760b914dc.tar.gz
scala-aa09cc3505096294b40949246d1906c760b914dc.tar.bz2
scala-aa09cc3505096294b40949246d1906c760b914dc.zip
close #3400. no review
-rw-r--r--src/library/scala/reflect/BeanProperty.scala3
-rw-r--r--src/library/scala/reflect/BooleanBeanProperty.scala3
-rw-r--r--test/files/jvm/annotations.check2
-rw-r--r--test/files/jvm/annotations.scala19
4 files changed, 27 insertions, 0 deletions
diff --git a/src/library/scala/reflect/BeanProperty.scala b/src/library/scala/reflect/BeanProperty.scala
index 22195e18e4..17f40cfca1 100644
--- a/src/library/scala/reflect/BeanProperty.scala
+++ b/src/library/scala/reflect/BeanProperty.scala
@@ -11,6 +11,8 @@
package scala.reflect
+import annotation.target._
+
/** <p>
* When attached to a field, this annotation adds a setter and a getter
* method following the Java Bean convention. For example:
@@ -29,4 +31,5 @@ package scala.reflect
* <code>scala.reflect.BooleanBeanProperty</code> annotation instead.
* </p>
*/
+@field
class BeanProperty extends StaticAnnotation
diff --git a/src/library/scala/reflect/BooleanBeanProperty.scala b/src/library/scala/reflect/BooleanBeanProperty.scala
index be1dadd5fe..eebdb98d9f 100644
--- a/src/library/scala/reflect/BooleanBeanProperty.scala
+++ b/src/library/scala/reflect/BooleanBeanProperty.scala
@@ -11,6 +11,8 @@
package scala.reflect
+import annotation.target._
+
/** <p>
* This annotation has the same functionality as
* <code>scala.reflect.BeanProperty</code>, but the generated
@@ -18,4 +20,5 @@ package scala.reflect
* of <code>getFieldName</code>.
* </p>
*/
+@field
class BooleanBeanProperty extends StaticAnnotation
diff --git a/test/files/jvm/annotations.check b/test/files/jvm/annotations.check
index fe14289381..e307f8930d 100644
--- a/test/files/jvm/annotations.check
+++ b/test/files/jvm/annotations.check
@@ -48,3 +48,5 @@ public void Test4$Foo12.name_$eq(java.lang.String)
0
99
+dylan
+2
diff --git a/test/files/jvm/annotations.scala b/test/files/jvm/annotations.scala
index 136aae6675..f32eb625e9 100644
--- a/test/files/jvm/annotations.scala
+++ b/test/files/jvm/annotations.scala
@@ -181,6 +181,24 @@ object Test5 {
}
}
+object Test6 {
+ import scala.reflect.BeanProperty
+ import scala.reflect.BooleanBeanProperty
+ class C(@BeanProperty var text: String)
+ class D(@BooleanBeanProperty var prop: Boolean) {
+ @BeanProperty val m: Int = if (prop) 1 else 2
+ }
+
+ def run {
+ val c = new C("bob")
+ c.setText("dylan")
+ println(c.getText())
+ if (new D(true).isProp()) {
+ println(new D(false).getM())
+ }
+ }
+}
+
// #3345
class A3345(@volatile private var i:Int)
@@ -191,5 +209,6 @@ object Test {
Test3.run // requires the use of -target:jvm-1.5
Test4.run
Test5.run
+ Test6.run
}
}