summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-05-17 15:39:54 +0000
committerMartin Odersky <odersky@gmail.com>2005-05-17 15:39:54 +0000
commit860077ec57d0ca5412c4448203e5028f3a783193 (patch)
tree216ee6f7f681247e34d8160c40c32b9c1d18ab69 /sources/scala/tools/nsc/typechecker/Namers.scala
parentea94e149516fcf20b1478f17b8c7d4fd6390f8ac (diff)
downloadscala-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-xsources/scala/tools/nsc/typechecker/Namers.scala14
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));