summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2008-10-22 07:45:47 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2008-10-22 07:45:47 +0000
commitf353a1d4fe83127f450941a9624ff562926984cf (patch)
tree0415915ac034b1e9b818219b452580730ed53625
parentbaa6f58f76e697d98336ce4ef2dbc71c7e0fccc7 (diff)
downloadscala-f353a1d4fe83127f450941a9624ff562926984cf.tar.gz
scala-f353a1d4fe83127f450941a9624ff562926984cf.tar.bz2
scala-f353a1d4fe83127f450941a9624ff562926984cf.zip
fixed #637 #1070
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala8
-rw-r--r--test/files/pos/annotations.scala10
2 files changed, 16 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
index fc9585cfa1..854b9525c8 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
@@ -261,20 +261,24 @@ trait SyntheticMethods { self: Analyzer =>
def addBeanGetterMethod(sym: Symbol) = {
val getter = beanSetterOrGetter(sym)
- if (getter != NoSymbol)
+ if (getter != NoSymbol) {
+ clazz.info.decls.enter(getter)
ts += typer.typed(DefDef(
getter,
vparamss => if (sym hasFlag DEFERRED) EmptyTree else gen.mkAttributedRef(sym)))
+ }
}
def addBeanSetterMethod(sym: Symbol) = {
val setter = beanSetterOrGetter(sym)
- if (setter != NoSymbol)
+ if (setter != NoSymbol) {
+ clazz.info.decls.enter(setter)
ts += typer.typed(DefDef(
setter,
vparamss =>
if (sym hasFlag DEFERRED) EmptyTree
else Apply(gen.mkAttributedRef(sym), List(Ident(vparamss.head.head)))))
+ }
}
def isPublic(sym: Symbol) =
diff --git a/test/files/pos/annotations.scala b/test/files/pos/annotations.scala
index d96c8e0c6a..558fd62956 100644
--- a/test/files/pos/annotations.scala
+++ b/test/files/pos/annotations.scala
@@ -9,4 +9,14 @@ object Test {
def c: Int @ann(x) = 1
def d: String @ann({val z = 0; z - 1}) = "2"
+
+ import scala.reflect.BeanProperty
+
+ // bug #637
+ trait S { def getField(): Int }
+ class O extends S { @BeanProperty val field = 0 }
+
+ // bug #1070
+ trait T { @BeanProperty var field = 1 }
}
+