From 63e0f169fcd933eeabdad2c6d9ea06865fc62049 Mon Sep 17 00:00:00 2001 From: James Strachan Date: Fri, 29 Jun 2012 23:13:05 +0100 Subject: [PATCH] re-enabled compiling to JS test cases now we've fixed the compilation of the latest comparator based standard library code --- js/js.libraries/src/core/javautil.kt | 4 --- js/js.libraries/src/core/kotlin.kt | 6 +++++ .../test/semantics/StdLibTestToJSTest.java | 5 ---- .../k2js/test/semantics/StdLibToJSTest.java | 4 --- .../src/org/jetbrains/k2js/config/Config.java | 2 ++ libraries/pom.xml | 11 +++----- .../src/kotlin/JLangIterablesSpecial.kt | 14 +--------- .../src/kotlin/JLangIterablesSpecialJVM.kt | 27 +++++++++++++++++++ .../kotlin/{Ordering.kt => OrderingJVM.kt} | 0 9 files changed, 39 insertions(+), 34 deletions(-) create mode 100644 js/js.libraries/src/core/kotlin.kt create mode 100644 libraries/stdlib/src/kotlin/JLangIterablesSpecialJVM.kt rename libraries/stdlib/src/kotlin/{Ordering.kt => OrderingJVM.kt} (100%) diff --git a/js/js.libraries/src/core/javautil.kt b/js/js.libraries/src/core/javautil.kt index 9633f527eb8..967a23e8064 100644 --- a/js/js.libraries/src/core/javautil.kt +++ b/js/js.libraries/src/core/javautil.kt @@ -10,10 +10,6 @@ public trait Comparator { fun compare(obj1 : T, obj2 : T) : Int; } -library("comparator") -public fun comparator(f : (T, T) -> Int) : Comparator = js.noImpl - - library public trait Iterator { open fun next() : T = js.noImpl diff --git a/js/js.libraries/src/core/kotlin.kt b/js/js.libraries/src/core/kotlin.kt new file mode 100644 index 00000000000..1cc381ad6d3 --- /dev/null +++ b/js/js.libraries/src/core/kotlin.kt @@ -0,0 +1,6 @@ +package kotlin + +import java.util.* + +library("comparator") +public fun comparator(f : (T, T) -> Int) : Comparator = js.noImpl diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibTestToJSTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibTestToJSTest.java index f47f1fda007..e18a1f19ffb 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibTestToJSTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibTestToJSTest.java @@ -36,15 +36,10 @@ import java.util.Set; */ public class StdLibTestToJSTest extends StdLibTestSupport { public void testGenerateTestCase() throws Exception { - - /* - TODO temporary disabled test - generateJavaScriptFiles(EcmaVersion.all(), "libraries/stdlib/test", "ListTest.kt", "StringTest.kt", "js/SimpleTest.kt"); - */ } } diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibToJSTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibToJSTest.java index 82a4a05c736..36b5226c95e 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibToJSTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibToJSTest.java @@ -36,14 +36,10 @@ import java.util.Set; public class StdLibToJSTest extends StdLibTestSupport { public void testCompileJavaScriptFiles() throws Exception { - - /* - TODO temporary disabled test generateJavaScriptFiles(EcmaVersion.all(), "libraries/stdlib/src", "kotlin/Preconditions.kt", "kotlin/dom/Dom.kt", "kotlin/support/AbstractIterator.kt"); - */ } } diff --git a/js/js.translator/src/org/jetbrains/k2js/config/Config.java b/js/js.translator/src/org/jetbrains/k2js/config/Config.java index 3345e27227a..28a5f72b881 100644 --- a/js/js.translator/src/org/jetbrains/k2js/config/Config.java +++ b/js/js.translator/src/org/jetbrains/k2js/config/Config.java @@ -58,6 +58,7 @@ public abstract class Config { "/core/javautil.kt", "/core/javalang.kt", "/core/javaio.kt", + "/core/kotlin.kt", "/core/date.kt", "/core/core.kt", "/core/math.kt", @@ -101,6 +102,7 @@ public abstract class Config { "/kotlin/JLangIterablesLazy.kt", "/kotlin/JLangIterablesSpecial.kt", "/kotlin/support/AbstractIterator.kt", + //"/kotlin/Ordering.kt", "/kotlin/Strings.kt", "/kotlin/test/Test.kt" ); diff --git a/libraries/pom.xml b/libraries/pom.xml index c94bba3fb5d..a8a952067e6 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -52,15 +52,13 @@ tools/runtime tools/kotlin-maven-plugin tools/kotlin-js-library - + tools/kdoc tools/kdoc-maven-plugin @@ -75,11 +73,8 @@ examples/kotlin-java-example - diff --git a/libraries/stdlib/src/kotlin/JLangIterablesSpecial.kt b/libraries/stdlib/src/kotlin/JLangIterablesSpecial.kt index fab0cfed4e9..425749e11d9 100644 --- a/libraries/stdlib/src/kotlin/JLangIterablesSpecial.kt +++ b/libraries/stdlib/src/kotlin/JLangIterablesSpecial.kt @@ -5,6 +5,7 @@ import java.util.Collection import java.util.List import java.util.AbstractList import java.util.Iterator +import java.util.Comparator /** * Count the number of elements in collection. @@ -71,19 +72,6 @@ public fun java.lang.Iterable.last() : T { return last; } -/** - * Copies all elements into a [[List]] and sorts it by value of compare_function(element) - * - * E.g. arrayList("two" to 2, "one" to 1).sortBy({it._2}) returns list sorted by second element of tuple - * - * @includeFunctionBody ../../test/CollectionTest.kt sortBy - */ -public inline fun > java.lang.Iterable.sortBy(f: (T) -> R): java.util.List { - val sortedList = this.toList() - java.util.Collections.sort(sortedList, comparator {(x, y) -> f(x).compareTo(f(y))}) - return sortedList -} - /** * Checks if collection contains given item. * diff --git a/libraries/stdlib/src/kotlin/JLangIterablesSpecialJVM.kt b/libraries/stdlib/src/kotlin/JLangIterablesSpecialJVM.kt new file mode 100644 index 00000000000..5b7f7fac6fe --- /dev/null +++ b/libraries/stdlib/src/kotlin/JLangIterablesSpecialJVM.kt @@ -0,0 +1,27 @@ +package kotlin + +import java.util.AbstractList +import java.util.Collection +import java.util.Comparator +import java.util.Iterator +import java.util.List + +// TODO this function is here as it breaks the JS compiler; lets move back to JLangIterablesSpecial when it works again :) + +/** + * Copies all elements into a [[List]] and sorts it by value of compare_function(element) + * + * E.g. arrayList("two" to 2, "one" to 1).sortBy({it._2}) returns list sorted by second element of tuple + * + * @includeFunctionBody ../../test/CollectionTest.kt sortBy + */ +public inline fun > java.lang.Iterable.sortBy(f: (T) -> R): java.util.List { + val sortedList = this.toList() + val sortBy: Comparator = comparator {(x: T, y: T) -> + val xr = f(x) + val yr = f(y) + xr.compareTo(yr) + } + java.util.Collections.sort(sortedList, sortBy) + return sortedList +} diff --git a/libraries/stdlib/src/kotlin/Ordering.kt b/libraries/stdlib/src/kotlin/OrderingJVM.kt similarity index 100% rename from libraries/stdlib/src/kotlin/Ordering.kt rename to libraries/stdlib/src/kotlin/OrderingJVM.kt