summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-08-03 22:18:10 +0000
committerMartin Odersky <odersky@gmail.com>2005-08-03 22:18:10 +0000
commit2a5f62338c30ba6d06aa10c8fb809ce92462f96c (patch)
tree052924741ede17387be41de5e9ff0d13d0d59fd4 /sources/scala/tools/nsc/typechecker/Namers.scala
parente12958a079cbffcfdb8142ab668581664f671334 (diff)
downloadscala-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-xsources/scala/tools/nsc/typechecker/Namers.scala9
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)