summaryrefslogtreecommitdiff
path: root/sources/scalac/backend
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-08-08 12:38:48 +0000
committerschinz <schinz@epfl.ch>2003-08-08 12:38:48 +0000
commitf1d35e8588bbac7bb47fb46e3c30b032ea12579d (patch)
treef0085c3760fa607dfa3576bd28ec22f2d62a62ab /sources/scalac/backend
parent17ec08ec2f9486b3b7fe54428aa857379cc4a66d (diff)
downloadscala-f1d35e8588bbac7bb47fb46e3c30b032ea12579d.tar.gz
scala-f1d35e8588bbac7bb47fb46e3c30b032ea12579d.tar.bz2
scala-f1d35e8588bbac7bb47fb46e3c30b032ea12579d.zip
- quick hack: make sure that the correct code i...
- quick hack: make sure that the correct code is generated for calls to "super" even if the symbol of the method is not correct (ExpandMixins should be fixed, but this is not trivial right now)
Diffstat (limited to 'sources/scalac/backend')
-rw-r--r--sources/scalac/backend/jvm/GenJVM.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java
index c3d0dd290e..e21dc014ff 100644
--- a/sources/scalac/backend/jvm/GenJVM.java
+++ b/sources/scalac/backend/jvm/GenJVM.java
@@ -391,7 +391,11 @@ class GenJVM {
funSym.owner().info(); // [HACK] ensure that flags are
// transformed.
- if (funSym.owner().isInterface())
+
+ // [HACK] in reality isSuperCall should never be true
+ // is the owner is an interface, but this is a quick
+ // fix before ExpandMixins is fixed.
+ if (funSym.owner().isInterface() && !isSuperCall)
ctx.code.emitINVOKEINTERFACE(clsName, mthName, funType);
else {
if (isConstrCall || isSuperCall) {