summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-16 09:27:55 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-16 09:27:55 +0000
commit8e21b1ec26ea19bc39f0b10e5454837f1be8fe60 (patch)
tree5cf3a4f466d9bddc969260117b65aaeae857d3b9
parentf410167a756064ef2d08c45a5073da7fb1482f9a (diff)
downloadscala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.tar.gz
scala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.tar.bz2
scala-8e21b1ec26ea19bc39f0b10e5454837f1be8fe60.zip
- Added Code.Eq to handle ANY_EQ
-rw-r--r--sources/scala/tools/scalai/Compiler.java4
-rw-r--r--sources/scala/tools/scalai/Evaluator.java4
-rw-r--r--sources/scala/tools/scalai/Function.java4
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";