From b3eb44e769029e8701c0398649530fea01092a36 Mon Sep 17 00:00:00 2001 From: svtk Date: Fri, 20 Jan 2012 19:31:04 +0400 Subject: [PATCH] removed some string methods from library.jet --- compiler/frontend/src/jet/Library.jet | 10 ------- .../tests/QualifiedExpressions.jet | 4 ++- .../jetbrains/jet/codegen/ClassGenTest.java | 6 ----- .../jet/codegen/ExtensionFunctionsTest.java | 4 --- .../jet/codegen/NamespaceGenTest.java | 13 --------- .../org/jetbrains/jet/codegen/StdlibTest.java | 27 +++++++++++++++++++ .../testData/checker/QualifiedExpressions.jet | 4 ++- stdlib/ktSrc/String.kt | 6 +++++ 8 files changed, 39 insertions(+), 35 deletions(-) diff --git a/compiler/frontend/src/jet/Library.jet b/compiler/frontend/src/jet/Library.jet index 91afe33923d..127344a5d25 100644 --- a/compiler/frontend/src/jet/Library.jet +++ b/compiler/frontend/src/jet/Library.jet @@ -50,16 +50,6 @@ class String() : Comparable { fun plus(other : Any?) : String fun equals(other : Any?) : Boolean - fun equalsIgnoreCase(other: String?) : Boolean - - fun substring(start: Int): String - fun substring(start: Int, end: Int): String - - fun startsWith(prefix: String, toffset: Int): Boolean - fun startsWith(prefix: String): Boolean - fun endsWith(suffix: String): Boolean - - fun trim(): String } diff --git a/compiler/testData/diagnostics/tests/QualifiedExpressions.jet b/compiler/testData/diagnostics/tests/QualifiedExpressions.jet index 135fbc2e89a..3ce867b2def 100644 --- a/compiler/testData/diagnostics/tests/QualifiedExpressions.jet +++ b/compiler/testData/diagnostics/tests/QualifiedExpressions.jet @@ -8,4 +8,6 @@ fun test(s: String?) { val e: String = s?.length ?: "empty" val f: Int = s?.length ?: b ?: 1 val g: Int? = e? startsWith("s")?.length -} \ No newline at end of file +} + +fun String.startsWith(s: String): Boolean = true \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java index e2a33a757cd..833e3d9766c 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java @@ -191,12 +191,6 @@ public class ClassGenTest extends CodegenTestCase { // System.out.println(generateToText()); } - public void testKt344 () throws Exception { - loadFile("regressions/kt344.jet"); -// System.out.println(generateToText()); - blackBox(); - } - public void testKt508 () throws Exception { loadFile("regressions/kt508.jet"); // System.out.println(generateToText()); diff --git a/compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java b/compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java index c03aebc041c..9468b0c810b 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java @@ -26,10 +26,6 @@ public class ExtensionFunctionsTest extends CodegenTestCase { assertThrows(foo, Exception.class, null, new StringBuilder()); } - public void testGeneric() throws Exception { - blackBoxFile("extensionFunctions/generic.jet"); - } - public void testVirtual() throws Exception { blackBoxFile("extensionFunctions/virtual.jet"); } diff --git a/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java index fc4f3fa3249..31e176f1819 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java @@ -503,19 +503,6 @@ public class NamespaceGenTest extends CodegenTestCase { assertEquals("aaa", tuple4._3); } - public void testPredicateOperator() throws Exception { - loadText("fun foo(s: String) = s?startsWith(\"J\")"); - final Method main = generateFunction(); - try { - assertEquals("JetBrains", main.invoke(null, "JetBrains")); - assertNull(main.invoke(null, "IntelliJ")); - } - catch (Throwable t) { -// System.out.println(generateToText()); - t.printStackTrace(); - } - } - public void testEscapeSequence() throws Exception { loadText("fun foo() = \"a\\nb\\$\""); final Method main = generateFunction(); diff --git a/compiler/tests/org/jetbrains/jet/codegen/StdlibTest.java b/compiler/tests/org/jetbrains/jet/codegen/StdlibTest.java index c9cad2d4bc3..fc2b4786668 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/StdlibTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/StdlibTest.java @@ -4,6 +4,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.compiler.CompileEnvironment; import org.jetbrains.jet.compiler.CompileSession; +import java.lang.reflect.Method; + /** * @author alex.tkachman */ @@ -83,4 +85,29 @@ public class StdlibTest extends CodegenTestCase { public void testKt274 () { // blackBoxFile("regressions/kt274.kt"); } + + //from ClassGenTest + public void testKt344 () throws Exception { + loadFile("regressions/kt344.jet"); +// System.out.println(generateToText()); + blackBox(); + } + + //from ExtensionFunctionsTest + public void testGeneric() throws Exception { + blackBoxFile("extensionFunctions/generic.jet"); + } + + //from NamespaceGenTest + public void testPredicateOperator() throws Exception { + loadText("fun foo(s: String) = s?startsWith(\"J\")"); + final Method main = generateFunction(); + try { + assertEquals("JetBrains", main.invoke(null, "JetBrains")); + assertNull(main.invoke(null, "IntelliJ")); + } catch (Throwable t) { +// System.out.println(generateToText()); + t.printStackTrace(); + } + } } diff --git a/idea/testData/checker/QualifiedExpressions.jet b/idea/testData/checker/QualifiedExpressions.jet index 73a2c4c677e..0527d08943d 100644 --- a/idea/testData/checker/QualifiedExpressions.jet +++ b/idea/testData/checker/QualifiedExpressions.jet @@ -8,4 +8,6 @@ fun test(s: String?) { val e: String = s?.length ?: "empty" val f: Int = s?.length ?: b ?: 1 val g: Int? = e? startsWith("s")?.length -} \ No newline at end of file +} + +fun String.startsWith(s: String): Boolean = true \ No newline at end of file diff --git a/stdlib/ktSrc/String.kt b/stdlib/ktSrc/String.kt index fe5912fa03e..0dd9653012b 100644 --- a/stdlib/ktSrc/String.kt +++ b/stdlib/ktSrc/String.kt @@ -8,6 +8,8 @@ inline fun String.lastIndexOf(s: String) = (this as java.lang.String).lastIndex inline fun String.lastIndexOf(s: Char) = (this as java.lang.String).lastIndexOf(s.toString()) +inline fun String.equalsIgnoreCase(s: String) = (this as java.lang.String).equalsIgnoreCase(s) + inline fun String.indexOf(s : String) = (this as java.lang.String).indexOf(s) inline fun String.indexOf(p0 : String, p1 : Int) = (this as java.lang.String).indexOf(p0, p1) @@ -34,6 +36,10 @@ inline fun String.substring(i : Int) = (this as java.lang.String).substring(i).s inline fun String.substring(i0 : Int, i1 : Int) = (this as java.lang.String).substring(i0, i1).sure() +inline fun String.startsWith(prefix: String) = (this as java.lang.String).startsWith(prefix) + +inline fun String.startsWith(prefix: String, toffset: Int) = (this as java.lang.String).startsWith(prefix, toffset) + inline val String.size : Int get() = length()