summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-04-24 10:18:44 +0000
committerMartin Odersky <odersky@gmail.com>2011-04-24 10:18:44 +0000
commit9db7dbe4409c192291079482a10ca902bacbeb33 (patch)
tree9e6e39f506402190df2b60ef20c5408351c20859 /src/compiler/scala/tools/nsc/typechecker/Namers.scala
parent63c7c9d857568879bfda146dd31bfc4ee38cb9fb (diff)
downloadscala-9db7dbe4409c192291079482a10ca902bacbeb33.tar.gz
scala-9db7dbe4409c192291079482a10ca902bacbeb33.tar.bz2
scala-9db7dbe4409c192291079482a10ca902bacbeb33.zip
Refined handling fo @bridge methods.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Namers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 3b3eb74745..29762360ea 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -454,6 +454,8 @@ trait Namers { self: Analyzer =>
finishWith(tparams)
case DefDef(mods, name, tparams, _, _, _) =>
tree.symbol = enterNewMethod(tree, name, mods.flags, mods, tree.pos)
+ if (mods.annotations.exists(ann => isAnn(ann, "bridge")))
+ tree.symbol setFlag BRIDGE
finishWith(tparams)
case TypeDef(mods, name, tparams, _) =>
var flags: Long = mods.flags
@@ -496,14 +498,15 @@ trait Namers { self: Analyzer =>
def enterAccessorMethod(tree: Tree, name: Name, flags: Long, mods: Modifiers): TermSymbol =
enterNewMethod(tree, name, flags, mods, tree.pos.focus)
+ def isAnn(ann: Tree, demand: String) = ann match {
+ case Apply(Select(New(Ident(name)), _), _) =>
+ name.toString == demand
+ case Apply(Select(New(Select(pre, name)), _), _) =>
+ name.toString == demand
+ case _ => false
+ }
+
private def addBeanGetterSetter(vd: ValDef, getter: Symbol) {
- def isAnn(ann: Tree, demand: String) = ann match {
- case Apply(Select(New(Ident(name)), _), _) =>
- name.toString == demand
- case Apply(Select(New(Select(pre, name)), _), _) =>
- name.toString == demand
- case _ => false
- }
val ValDef(mods, name, tpt, _) = vd
val hasBP = mods.annotations.exists(isAnn(_, "BeanProperty"))
val hasBoolBP = mods.annotations.exists(isAnn(_, "BooleanBeanProperty"))