summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-05-30 16:27:51 +0000
committerMartin Odersky <odersky@gmail.com>2007-05-30 16:27:51 +0000
commite78dcdc4c5b920d686f69aca8e9b9670054125bb (patch)
tree6564d87c57b7d029adf82c92f77d15fd781bb5f9
parent1cc6a768e075c0d764ae0625598b5d352ec1b4f2 (diff)
downloadscala-e78dcdc4c5b920d686f69aca8e9b9670054125bb.tar.gz
scala-e78dcdc4c5b920d686f69aca8e9b9670054125bb.tar.bz2
scala-e78dcdc4c5b920d686f69aca8e9b9670054125bb.zip
fixed bug 1137
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala6
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 8c4e61273c..e31f7d4c22 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -262,11 +262,11 @@ trait Symbols {
isTrait && (!hasFlag(INTERFACE) || hasFlag(lateINTERFACE)) && !isImplClass
/** Is this a symbol which exists only in the implementation class, not in its trait? */
- final def isImplOnly: boolean = (
+ final def isImplOnly: boolean =
hasFlag(PRIVATE) ||
(owner.isImplClass || owner.isTrait) &&
- (hasFlag(notPRIVATE | LIFTED) && !hasFlag(ACCESSOR | SUPERACCESSOR | MODULE) || isConstructor)
- )
+ ((hasFlag(notPRIVATE | LIFTED) && !hasFlag(ACCESSOR | SUPERACCESSOR | MODULE) || isConstructor) ||
+ (hasFlag(LIFTED) && isModule && isMethod))
/** Is this symbol a module variable ? */
final def isModuleVar: boolean = isVariable && hasFlag(MODULEVAR)
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala
index e8955a42f1..b41336c9f0 100644
--- a/src/compiler/scala/tools/nsc/transform/Mixin.scala
+++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala
@@ -41,7 +41,7 @@ abstract class Mixin extends InfoTransform {
*/
private def isImplementedStatically(sym: Symbol) =
sym.owner.isImplClass && sym.isMethod &&
- (!sym.isModule || sym.hasFlag(PRIVATE)) &&
+ (!sym.isModule || sym.hasFlag(PRIVATE | LIFTED)) &&
!(sym hasFlag (ACCESSOR | SUPERACCESSOR))
/** A member of a trait is static only if it belongs only to the