diff options
author | Martin Odersky <odersky@gmail.com> | 2005-05-17 15:39:54 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-05-17 15:39:54 +0000 |
commit | 860077ec57d0ca5412c4448203e5028f3a783193 (patch) | |
tree | 216ee6f7f681247e34d8160c40c32b9c1d18ab69 /sources/scala/tools/nsc/typechecker/Namers.scala | |
parent | ea94e149516fcf20b1478f17b8c7d4fd6390f8ac (diff) | |
download | scala-860077ec57d0ca5412c4448203e5028f3a783193.tar.gz scala-860077ec57d0ca5412c4448203e5028f3a783193.tar.bz2 scala-860077ec57d0ca5412c4448203e5028f3a783193.zip |
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/Namers.scala')
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/Namers.scala | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sources/scala/tools/nsc/typechecker/Namers.scala b/sources/scala/tools/nsc/typechecker/Namers.scala index 01dc7cbe90..5c26880563 100755 --- a/sources/scala/tools/nsc/typechecker/Namers.scala +++ b/sources/scala/tools/nsc/typechecker/Namers.scala @@ -121,7 +121,7 @@ trait Namers: Analyzer { } def finish = finishWith(List()); - if (tree.symbol == null || tree.symbol == NoSymbol) { + if (tree.symbol == NoSymbol) { val owner = context.owner; tree match { case PackageDef(name, stats) => @@ -151,14 +151,16 @@ trait Namers: Analyzer { enterInScope(getter); if ((mods & MUTABLE) != 0) { val setter = owner.newMethod(tree.pos, nme.SETTER_NAME(name)) - .setFlag(accmods).setInfo(innerNamer.setterTypeCompleter(tree)); + .setFlag(accmods & ~STABLE).setInfo(innerNamer.setterTypeCompleter(tree)); enterInScope(setter) } tree.symbol = - if ((mods & DEFERRED) == 0) - owner.newValue(tree.pos, name) - .setFlag(mods & FieldFlags | PRIVATE | LOCAL).setInfo(innerNamer.typeCompleter(tree)) - else getter; + if ((mods & DEFERRED) == 0) + enterInScope( + owner.newValue(tree.pos, nme.LOCAL_NAME(name)) + .setFlag(mods & FieldFlags | PRIVATE | LOCAL) + .setInfo(innerNamer.typeCompleter(tree))) + else getter; } else { tree.symbol = enterInScope(owner.newValue(tree.pos, name).setFlag(mods)); |