summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 8d775ba756..6228429f98 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -533,9 +533,10 @@ trait Namers { self: Analyzer =>
if (parents exists (_.typeSymbol.isVirtualClass))
clazz setFlag DEFERRED
// add overridden virtuals to parents
- if (clazz.isVirtualClass)
- parents = parents ::: (clazz.overriddenVirtuals map (
- TypeRef(clazz.thisType, _, clazz.typeParams map (_.tpe))))
+ if (clazz.isVirtualClass) {
+ parents = parents ::: ((clazz.overriddenVirtuals.filter(_ != clazz)) map (
+ sym => TypeRef(sym.owner.thisType, sym, clazz.typeParams map (_.tpe))))
+ }
// add apply and unapply methods to companion objects of case classes,
// unless they exist already
caseClassOfModuleClass get clazz match {