summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-10-07 06:29:29 +0000
committerpaltherr <paltherr@epfl.ch>2003-10-07 06:29:29 +0000
commit0d9f013e96ca65cb5e11cd958410cd3057d120be (patch)
tree5eb6a0124462be8c0acede78ee8ea70fd82ce4a5 /sources
parent923c969e57d72a1d072b4772d2f2870a061b23ad (diff)
downloadscala-0d9f013e96ca65cb5e11cd958410cd3057d120be.tar.gz
scala-0d9f013e96ca65cb5e11cd958410cd3057d120be.tar.bz2
scala-0d9f013e96ca65cb5e11cd958410cd3057d120be.zip
- Added code to does method lookups for interfa...
- Added code to does method lookups for interface methods
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/tools/scalai/ScalaTemplate.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/sources/scala/tools/scalai/ScalaTemplate.java b/sources/scala/tools/scalai/ScalaTemplate.java
index f0eac355e0..764ce47ba4 100644
--- a/sources/scala/tools/scalai/ScalaTemplate.java
+++ b/sources/scala/tools/scalai/ScalaTemplate.java
@@ -78,6 +78,10 @@ public class ScalaTemplate {
public Object invoke(Object self, Symbol method, Object[] args) {
CodePromise code = (CodePromise)vtable.get(method);
+ if (code == null) {
+ // !!! generalize use of overridingSymbol in interpreter
+ code = (CodePromise)vtable.get(method.overridingSymbol(symbol.thisType(), true));
+ }
assert code != null : Debug.show(symbol) + "->" + Debug.show(method);
return evaluator.evaluate(code, self, args);
}