diff options
author | mihaylov <mihaylov@epfl.ch> | 2004-07-20 16:32:34 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2004-07-20 16:32:34 +0000 |
commit | ba643c72dfff2b1bb9eedd1e30f9c967d7fb75d1 (patch) | |
tree | 24c80bdaee96e17d1311113be5004e3f78e827ed /sources | |
parent | f2db31c140249a38858fb70607b774f5315598a5 (diff) | |
download | scala-ba643c72dfff2b1bb9eedd1e30f9c967d7fb75d1.tar.gz scala-ba643c72dfff2b1bb9eedd1e30f9c967d7fb75d1.tar.bz2 scala-ba643c72dfff2b1bb9eedd1e30f9c967d7fb75d1.zip |
- Added several fake methods to System.Object a...
- Added several fake methods to System.Object and System.String
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/symtab/Definitions.java | 75 |
1 files changed, 74 insertions, 1 deletions
diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java index 17fa1a5802..fa5cc2d791 100644 --- a/sources/scalac/symtab/Definitions.java +++ b/sources/scalac/symtab/Definitions.java @@ -650,7 +650,9 @@ public class Definitions { 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"); + STRING_CLASS = getClass(global.target != Global.TARGET_MSIL + ? "java.lang.String": "System.String"); // the scala value classes UNIT_CLASS = getClass("scala.Unit"); @@ -777,12 +779,83 @@ public class Definitions { Symbol NOTIFY_ALL = newMethod(OBJECT_CLASS, Names.notifyAll, Modifiers.FINAL); initMethod(NOTIFY_ALL, Type.EMPTY_ARRAY, UNIT_TYPE()); + + Symbol JLOA = newAlias(JAVALANG, Names.Object, 0); + initAlias(JLOA, OBJECT_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()); + if (global.target == Global.TARGET_MSIL) { + Symbol s = newMethod(STRING_CLASS, Name.fromString("length"), 0); + initMethod(s, Type.EMPTY_ARRAY, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("compareTo"), 0); + initMethod(s, new Type[] {STRING_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("charAt"), 0); + initMethod(s, new Type[] {INT_TYPE()}, CHAR_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("concat"), 0); + initMethod(s, new Type[] {STRING_TYPE()}, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("indexOf"), 0); + initMethod(s, new Type[] {INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("indexOf"), 0); + initMethod(s, new Type[] {INT_TYPE(), INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("indexOf"), 0); + initMethod(s, new Type[] {STRING_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("indexOf"), 0); + initMethod(s, new Type[] {STRING_TYPE(), INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("lastIndexOf"), 0); + initMethod(s, new Type[] {INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("lastIndexOf"), 0); + initMethod(s, new Type[] {INT_TYPE(), INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("lastIndexOf"), 0); + initMethod(s, new Type[] {STRING_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("lastIndexOf"), 0); + initMethod(s, new Type[] {STRING_TYPE(), INT_TYPE()}, INT_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("toLowerCase"), 0); + initMethod(s, Type.EMPTY_ARRAY, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("toUpperCase"), 0); + initMethod(s, Type.EMPTY_ARRAY, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("startsWith"), 0); + initMethod(s, new Type[]{STRING_TYPE()}, BOOLEAN_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("endsWith"), 0); + initMethod(s, new Type[]{STRING_TYPE()}, BOOLEAN_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("substring"), 0); + initMethod(s, new Type[]{INT_TYPE()}, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("substring"), 0); + initMethod(s, new Type[]{INT_TYPE(), INT_TYPE()}, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("intern"), 0); + initMethod(s, Type.EMPTY_ARRAY, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("replace"), 0); + initMethod(s, new Type[]{CHAR_TYPE(), CHAR_TYPE()}, STRING_TYPE()); + + s = newMethod(STRING_CLASS, Name.fromString("toCharArray"), 0); + initMethod(s, Type.EMPTY_ARRAY, array_TYPE(CHAR_TYPE())); + + Symbol JLSA = newAlias(JAVALANG, Names.String, 0); + initAlias(JLSA, STRING_TYPE()); + } + // add members to java.lang.Throwable THROWABLE_THROW = newMethod(THROWABLE_CLASS, Names.throw_, Modifiers.FINAL); |