summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-04-03 09:18:19 +0000
committerMartin Odersky <odersky@gmail.com>2006-04-03 09:18:19 +0000
commitd1007862edf2f20a46a5395354991c63ede4abfa (patch)
treef5f2453236cc476f1bb65111ad97e9c52ac679cd /src
parent2b8d5f6485faec89410678834d25cce9656a7232 (diff)
downloadscala-d1007862edf2f20a46a5395354991c63ede4abfa.tar.gz
scala-d1007862edf2f20a46a5395354991c63ede4abfa.tar.bz2
scala-d1007862edf2f20a46a5395354991c63ede4abfa.zip
Fixed abstract override problem detected by Moez
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index bf2685d466..112294ead3 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -620,7 +620,7 @@ trait Symbols requires SymbolTable {
* @param site The base type from which member types are computed
*/
final def matchingSymbol(ofclazz: Symbol, site: Type): Symbol =
- ofclazz.info.nonPrivateDecl(name).suchThat(sym =>
+ ofclazz.info.nonPrivateDecl(name).filter(sym =>
!sym.isTerm || (site.memberType(this) matches site.memberType(sym)));
/** The symbol overridden by this symbol in given class `ofclazz' */
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala
index a52ff1e5f5..c7f9f775fd 100644
--- a/src/compiler/scala/tools/nsc/transform/Mixin.scala
+++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala
@@ -49,7 +49,7 @@ abstract class Mixin extends InfoTransform {
val other = bcs.head.info.nonPrivateDecl(member.name);
log("rebindsuper " + bcs.head + " " + other + " " + other.tpe + " " + other.hasFlag(DEFERRED));
}
- sym = member.overridingSymbol(bcs.head).suchThat(sym => !sym.hasFlag(DEFERRED));
+ sym = member.overridingSymbol(bcs.head).suchThat(sym => !sym.hasFlag(DEFERRED | BRIDGE));
bcs = bcs.tail
}
assert(sym != NoSymbol, member);