summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormihaylov <mihaylov@epfl.ch>2004-06-21 07:49:11 +0000
committermihaylov <mihaylov@epfl.ch>2004-06-21 07:49:11 +0000
commit146510051fbf1691432b018eb56cdb2f8e2d7fe0 (patch)
treecb4c80180431176e6d50d8fa364a001beaf52b3d
parent3fb2be2e19da76070e164c1e531ffae0ba6982e5 (diff)
downloadscala-146510051fbf1691432b018eb56cdb2f8e2d7fe0.tar.gz
scala-146510051fbf1691432b018eb56cdb2f8e2d7fe0.tar.bz2
scala-146510051fbf1691432b018eb56cdb2f8e2d7fe0.zip
- When targetting the MSIL backend treat scala....
- When targetting the MSIL backend treat scala.AnyRef as an alias for - System.Object Add the wait and notify methods to System.Object
-rw-r--r--sources/scalac/symtab/Definitions.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java
index 5311e8dc1d..7d0d6ce0a7 100644
--- a/sources/scalac/symtab/Definitions.java
+++ b/sources/scalac/symtab/Definitions.java
@@ -642,9 +642,10 @@ public class Definitions {
ALL_CLASS = newClass(SCALA_CLASS, Names.All, 0);
// the java classes
- OBJECT_CLASS = getClass("java.lang.Object");
+ OBJECT_CLASS = getClass(global.target != Global.TARGET_MSIL ?
+ "java.lang.Object" : "System.Object");
THROWABLE_CLASS = getClass("java.lang.Throwable");
- STRING_CLASS = getClass("java.lang.String");
+ STRING_CLASS = getClass("java.lang.String");
// the scala value classes
UNIT_CLASS = getClass("scala.Unit");
@@ -753,6 +754,25 @@ public class Definitions {
new Symbol[] {OBJECT_SYNCHRONIZED_VPARAM},
OBJECT_SYNCHRONIZED_TPARAM.type())));
+ if (global.target == Global.TARGET_MSIL) {
+ Symbol WAIT0 = newMethod(OBJECT_CLASS, Names.wait, Modifiers.FINAL);
+ initMethod(WAIT0, Type.EMPTY_ARRAY, UNIT_TYPE());
+
+ Symbol WAIT1 = newMethod(OBJECT_CLASS, Names.wait, Modifiers.FINAL);
+ initMethod(WAIT1, new Type[]{LONG_TYPE()}, UNIT_TYPE());
+
+ Symbol WAIT2 = newMethod(OBJECT_CLASS, Names.wait, Modifiers.FINAL);
+ initMethod(WAIT2, new Type[]{LONG_TYPE(), INT_TYPE()}, UNIT_TYPE());
+
+ Symbol NOTIFY =
+ newMethod(OBJECT_CLASS, Names.notify, Modifiers.FINAL);
+ initMethod(NOTIFY, Type.EMPTY_ARRAY, UNIT_TYPE());
+
+ Symbol NOTIFY_ALL =
+ newMethod(OBJECT_CLASS, Names.notifyAll, Modifiers.FINAL);
+ initMethod(NOTIFY_ALL, Type.EMPTY_ARRAY, UNIT_TYPE());
+ }
+
// add members to java.lang.String
STRING_PLUS = newMethod(STRING_CLASS, Names.PLUS, Modifiers.FINAL);
initMethod(STRING_PLUS, new Type[]{ANY_TYPE()}, STRING_TYPE());