diff options
author | mihaylov <mihaylov@epfl.ch> | 2004-06-21 07:49:11 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2004-06-21 07:49:11 +0000 |
commit | 146510051fbf1691432b018eb56cdb2f8e2d7fe0 (patch) | |
tree | cb4c80180431176e6d50d8fa364a001beaf52b3d /sources/scalac | |
parent | 3fb2be2e19da76070e164c1e531ffae0ba6982e5 (diff) | |
download | scala-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
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/symtab/Definitions.java | 24 |
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()); |