From 146510051fbf1691432b018eb56cdb2f8e2d7fe0 Mon Sep 17 00:00:00 2001 From: mihaylov Date: Mon, 21 Jun 2004 07:49:11 +0000 Subject: - 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 --- sources/scalac/symtab/Definitions.java | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'sources') 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()); -- cgit v1.2.3