diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-10-22 07:45:47 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-10-22 07:45:47 +0000 |
commit | f353a1d4fe83127f450941a9624ff562926984cf (patch) | |
tree | 0415915ac034b1e9b818219b452580730ed53625 | |
parent | baa6f58f76e697d98336ce4ef2dbc71c7e0fccc7 (diff) | |
download | scala-f353a1d4fe83127f450941a9624ff562926984cf.tar.gz scala-f353a1d4fe83127f450941a9624ff562926984cf.tar.bz2 scala-f353a1d4fe83127f450941a9624ff562926984cf.zip |
fixed #637 #1070
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala | 8 | ||||
-rw-r--r-- | test/files/pos/annotations.scala | 10 |
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 } } + |