diff options
author | paltherr <paltherr@epfl.ch> | 2004-03-16 09:27:55 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-03-16 09:27:55 +0000 |
commit | 8e21b1ec26ea19bc39f0b10e5454837f1be8fe60 (patch) | |
tree | 5cf3a4f466d9bddc969260117b65aaeae857d3b9 /sources | |
parent | f410167a756064ef2d08c45a5073da7fb1482f9a (diff) | |
download | scala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.tar.gz scala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.tar.bz2 scala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.zip |
- Added Code.Eq to handle ANY_EQ
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/tools/scalai/Compiler.java | 4 | ||||
-rw-r--r-- | sources/scala/tools/scalai/Evaluator.java | 4 | ||||
-rw-r--r-- | sources/scala/tools/scalai/Function.java | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/sources/scala/tools/scalai/Compiler.java b/sources/scala/tools/scalai/Compiler.java index 9479724a24..5cfdd7cc3f 100644 --- a/sources/scala/tools/scalai/Compiler.java +++ b/sources/scala/tools/scalai/Compiler.java @@ -175,6 +175,10 @@ public class Compiler { // !!! method java.lang.Object.wait(long) // !!! method java.lang.Object.wait(long, int) + environment.insertFunction(definitions.ANY_EQ, Function.Eq); + Override eq_override = Override.empty().insert(definitions.ANY_EQ); + environment.insertOverride(definitions.ANY_EQ, eq_override); + environment.insertFunction(definitions.ANY_EQEQ, Function.EqEq); Override eqeq_override = Override.empty().insert(definitions.ANY_EQEQ); environment.insertOverride(definitions.ANY_EQEQ, eqeq_override); diff --git a/sources/scala/tools/scalai/Evaluator.java b/sources/scala/tools/scalai/Evaluator.java index 5364e6dfdd..44f75bc3f7 100644 --- a/sources/scala/tools/scalai/Evaluator.java +++ b/sources/scala/tools/scalai/Evaluator.java @@ -310,6 +310,10 @@ public class Evaluator { //assert object instanceof String : object.getClass().getName(); return (String.valueOf(object)).concat(String.valueOf(args[0])); + case Eq: + assert args.length == 1 : Debug.show(args); + return object == args[0] ? Boolean.TRUE : Boolean.FALSE; + case EqEq: assert args.length == 1 : Debug.show(args); return object == null ? new Boolean(args[0] == null) : new Boolean(object.equals(args[0])); // !!! diff --git a/sources/scala/tools/scalai/Function.java b/sources/scala/tools/scalai/Function.java index ae8b29e6a7..3057a46f14 100644 --- a/sources/scala/tools/scalai/Function.java +++ b/sources/scala/tools/scalai/Function.java @@ -31,6 +31,7 @@ public class Function { public case Neg; public case Throw; public case StringPlus; + public case Eq; public case EqEq; public case BangEq; public case HashCode; @@ -69,6 +70,9 @@ public class Function { case StringPlus: return "StringPlus"; + case Eq: + return "Eq"; + case EqEq: return "EqEq"; |