diff options
author | Martin Odersky <odersky@gmail.com> | 2005-08-03 22:18:10 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-08-03 22:18:10 +0000 |
commit | 2a5f62338c30ba6d06aa10c8fb809ce92462f96c (patch) | |
tree | 052924741ede17387be41de5e9ff0d13d0d59fd4 /sources/scala/tools/nsc/typechecker/Namers.scala | |
parent | e12958a079cbffcfdb8142ab668581664f671334 (diff) | |
download | scala-2a5f62338c30ba6d06aa10c8fb809ce92462f96c.tar.gz scala-2a5f62338c30ba6d06aa10c8fb809ce92462f96c.tar.bz2 scala-2a5f62338c30ba6d06aa10c8fb809ce92462f96c.zip |
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/Namers.scala')
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/Namers.scala | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/scala/tools/nsc/typechecker/Namers.scala b/sources/scala/tools/nsc/typechecker/Namers.scala index 2e1e5231ea..bb63df325d 100755 --- a/sources/scala/tools/nsc/typechecker/Namers.scala +++ b/sources/scala/tools/nsc/typechecker/Namers.scala @@ -128,20 +128,21 @@ trait Namers: Analyzer { val namer = new Namer( context.make(tree, tree.symbol.moduleClass, tree.symbol.info.decls)); namer.enterSyms(stats); - case ClassDef(mods, name, tparams, _, _) => + case ClassDef(mods, name, tparams, _, impl) => if ((mods & (CASE | ABSTRACT)) == CASE) { // enter case factory method. tree.symbol = enterCaseFactorySymbol( tree.pos, mods & AccessFlags | METHOD | CASE, name.toTermName) setInfo innerNamer.caseFactoryCompleter(tree) - } - tree.symbol = enterClassSymbol(tree.pos, mods, name); + } + val mods1: int = if (impl.body forall treeInfo.isInterfaceMember) mods | INTERFACE else mods; + tree.symbol = enterClassSymbol(tree.pos, mods1, name); finishWith(tparams) case ModuleDef(mods, name, _) => tree.symbol = enterModuleSymbol(tree.pos, mods | MODULE | FINAL, name); tree.symbol.moduleClass.setInfo(innerNamer.typeCompleter(tree)); finish case ValDef(mods, name, tp, rhs) => - if (context.owner.isClass & (mods & PRIVATE) == 0) { + if (context.owner.isClass & (mods & LOCAL) == 0) { val accmods = ACCESSOR | (if ((mods & MUTABLE) != 0) mods & ~MUTABLE else mods | STABLE); val getter = owner.newMethod(tree.pos, name) |