diff --git a/libraries/stdlib/pom.xml b/libraries/stdlib/pom.xml
index 88f8cf56949..7805912517d 100644
--- a/libraries/stdlib/pom.xml
+++ b/libraries/stdlib/pom.xml
@@ -55,6 +55,23 @@
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2.1
+
+
+
+ java
+
+
+
+
+ org.jetbrains.kotlin.tools.namespace
+ test
+
+
diff --git a/libraries/stdlib/src/JavaIterables.kt b/libraries/stdlib/src/JavaIterables.kt
index be59815caa8..4c2d8cf6cf3 100644
--- a/libraries/stdlib/src/JavaIterables.kt
+++ b/libraries/stdlib/src/JavaIterables.kt
@@ -54,9 +54,9 @@ inline fun > java.lang.Iterable.filterTo(result: C, pr
}
/** Returns a List containing all the non null elements in this collection */
-inline fun java.lang.Iterable?.filterNotNull() : Collection = filterNotNullTo(java.util.ArrayList())
+inline fun java.lang.Iterable?.filterNotNull() : Collection = filterNotNullTo>(java.util.ArrayList())
-/** Filters all the null elements in this collection winto the given result collection */
+/** Filters all the null elements in this collection into the given result collection */
inline fun > java.lang.Iterable?.filterNotNullTo(result: C) : C {
if (this != null) {
for (elem in this) {
diff --git a/libraries/stdlib/src/generated/ArraysFromJavaCollections.kt b/libraries/stdlib/src/generated/ArraysFromJavaCollections.kt
index d8b1c6e14ff..a572e6198c2 100644
--- a/libraries/stdlib/src/generated/ArraysFromJavaCollections.kt
+++ b/libraries/stdlib/src/generated/ArraysFromJavaCollections.kt
@@ -1,4 +1,4 @@
-// NOTE this file is auto-generated from stdlib/ktSrc/JavaCollections.kt
+// NOTE this file is auto-generated from src/JavaCollections.kt
package kotlin
import java.util.*
diff --git a/libraries/stdlib/src/generated/ArraysFromJavaIterables.kt b/libraries/stdlib/src/generated/ArraysFromJavaIterables.kt
index 6cc7a6e91bf..663ea5d95d1 100644
--- a/libraries/stdlib/src/generated/ArraysFromJavaIterables.kt
+++ b/libraries/stdlib/src/generated/ArraysFromJavaIterables.kt
@@ -1,4 +1,4 @@
-// NOTE this file is auto-generated from stdlib/ktSrc/JavaIterables.kt
+// NOTE this file is auto-generated from src/JavaIterables.kt
package kotlin
import kotlin.util.*
@@ -57,9 +57,9 @@ inline fun > Array.filterTo(result: C, predicate: (T)-
}
/** Returns a List containing all the non null elements in this collection */
-inline fun Array?.filterNotNull() : Collection = filterNotNullTo(java.util.ArrayList())
+inline fun Array?.filterNotNull() : Collection = filterNotNullTo>(java.util.ArrayList())
-/** Filters all the null elements in this collection winto the given result collection */
+/** Filters all the null elements in this collection into the given result collection */
inline fun > Array?.filterNotNullTo(result: C) : C {
if (this != null) {
for (elem in this) {
diff --git a/libraries/stdlib/src/generated/JavaUtilIterablesFromJavaCollections.kt b/libraries/stdlib/src/generated/JavaUtilIterablesFromJavaCollections.kt
index db9fa82bdef..93517340613 100644
--- a/libraries/stdlib/src/generated/JavaUtilIterablesFromJavaCollections.kt
+++ b/libraries/stdlib/src/generated/JavaUtilIterablesFromJavaCollections.kt
@@ -1,4 +1,4 @@
-// NOTE this file is auto-generated from stdlib/ktSrc/JavaCollections.kt
+// NOTE this file is auto-generated from src/JavaCollections.kt
package kotlin.util
import java.util.*
diff --git a/libraries/stdlib/src/generated/StandardFromJavaCollections.kt b/libraries/stdlib/src/generated/StandardFromJavaCollections.kt
index 0421c4a631e..7b05938a752 100644
--- a/libraries/stdlib/src/generated/StandardFromJavaCollections.kt
+++ b/libraries/stdlib/src/generated/StandardFromJavaCollections.kt
@@ -1,4 +1,4 @@
-// NOTE this file is auto-generated from stdlib/ktSrc/JavaCollections.kt
+// NOTE this file is auto-generated from src/JavaCollections.kt
package kotlin
import java.util.*
diff --git a/libraries/stdlib/src/generated/StandardFromJavaIterables.kt b/libraries/stdlib/src/generated/StandardFromJavaIterables.kt
index 3714a677c35..3f88519d201 100644
--- a/libraries/stdlib/src/generated/StandardFromJavaIterables.kt
+++ b/libraries/stdlib/src/generated/StandardFromJavaIterables.kt
@@ -1,4 +1,4 @@
-// NOTE this file is auto-generated from stdlib/ktSrc/JavaIterables.kt
+// NOTE this file is auto-generated from src/JavaIterables.kt
package kotlin
import kotlin.util.*
@@ -56,7 +56,19 @@ inline fun > Iterable.filterTo(result: C, predicate: (
return result
}
+/** Returns a List containing all the non null elements in this collection */
+inline fun Iterable?.filterNotNull() : Collection = filterNotNullTo>(java.util.ArrayList())
+/** Filters all the null elements in this collection into the given result collection */
+inline fun > Iterable?.filterNotNullTo(result: C) : C {
+ if (this != null) {
+ for (elem in this) {
+ if (elem != null)
+ result.add(elem)
+ }
+ }
+ return result
+}
/** Returns a new collection containing all elements in this collection which do not match the given predicate */
inline fun Iterable.filterNot(predicate: (T)-> Boolean) : Collection = filterNotTo(ArrayList(), predicate)
diff --git a/libraries/stdlib/test/GenerateStandardLib.kt b/libraries/stdlib/test/GenerateStandardLib.kt
index 84e8fac4b79..318e55148e0 100644
--- a/libraries/stdlib/test/GenerateStandardLib.kt
+++ b/libraries/stdlib/test/GenerateStandardLib.kt
@@ -1,39 +1,35 @@
package org.jetbrains.kotlin.tools
-import kotlin.*
-import kotlin.io.*
-import kotlin.util.*
import java.io.*
-import java.util.*
fun generateFile(outFile: File, header: String, inputFile: File, f: (String)-> String) {
- println("Parsing $inputFile and writing $outFile")
+ println("Parsing $inputFile and writing $outFile")
- outFile.getParentFile()?.mkdirs()
- val writer = PrintWriter(FileWriter(outFile))
- try {
- writer.println("// NOTE this file is auto-generated from $inputFile")
- writer.println(header)
-
- val reader = FileReader(inputFile).buffered()
+ outFile.getParentFile()?.mkdirs()
+ val writer = PrintWriter(FileWriter(outFile))
try {
- // TODO ideally we'd use a filterNot() here :)
- val iter = reader.lineIterator()
- while (iter.hasNext) {
- val line = iter.next()
+ writer.println("// NOTE this file is auto-generated from $inputFile")
+ writer.println(header)
- if (line.startsWith("package")) continue
+ val reader = FileReader(inputFile).buffered()
+ try {
+ // TODO ideally we'd use a filterNot() here :)
+ val iter = reader.lineIterator()
+ while (iter.hasNext) {
+ val line = iter.next()
- val xform = f(line)
- writer.println(xform)
- }
+ if (line.startsWith("package")) continue
+
+ val xform = f(line)
+ writer.println(xform)
+ }
+ } finally {
+ reader.close()
+ reader.close()
+ }
} finally {
- reader.close()
- reader.close()
+ writer.close()
}
- } finally {
- writer.close()
- }
}
@@ -45,39 +41,35 @@ fun generateFile(outFile: File, header: String, inputFile: File, f: (String)-> S
* at runtime.
*/
fun main(args: Array) {
- var stdlib = File("stdlib")
- if (!stdlib.exists()) {
- stdlib = File("../stdlib")
- if (!stdlib.exists()) {
- println("Cannot find stdlib!")
- return
+ var srcDir = File("src")
+ if (!srcDir.exists()) {
+ srcDir = File("stdlib/src")
+ require(srcDir.exists(), "Could not find the src directory!")
}
- }
- val srcDir = File(stdlib, "ktSrc")
- val outDir = File(srcDir, "generated")
+ val outDir = File(srcDir, "generated")
- // JavaIterables - Generic iterable stuff
- generateFile(File(outDir, "ArraysFromJavaIterables.kt"), "package kotlin\n\nimport kotlin.util.*", File(srcDir, "JavaIterables.kt")) {
- it.replaceAll("java.lang.Iterable