diff options
author | paltherr <paltherr@epfl.ch> | 2003-10-07 06:29:29 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-10-07 06:29:29 +0000 |
commit | 0d9f013e96ca65cb5e11cd958410cd3057d120be (patch) | |
tree | 5eb6a0124462be8c0acede78ee8ea70fd82ce4a5 /sources | |
parent | 923c969e57d72a1d072b4772d2f2870a061b23ad (diff) | |
download | scala-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.java | 4 |
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); } |