diff options
author | schinz <schinz@epfl.ch> | 2003-08-08 12:38:48 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-08-08 12:38:48 +0000 |
commit | f1d35e8588bbac7bb47fb46e3c30b032ea12579d (patch) | |
tree | f0085c3760fa607dfa3576bd28ec22f2d62a62ab /sources/scalac | |
parent | 17ec08ec2f9486b3b7fe54428aa857379cc4a66d (diff) | |
download | scala-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')
-rw-r--r-- | sources/scalac/backend/jvm/GenJVM.java | 6 |
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) { |