From b2dd4cd590f2faa19824a672e717485dca8be6f7 Mon Sep 17 00:00:00 2001 From: James Strachan Date: Fri, 23 Mar 2012 11:04:04 +0000 Subject: [PATCH] updated the code generator of standard library methods and regenerated it --- libraries/stdlib/pom.xml | 17 ++++ libraries/stdlib/src/JavaIterables.kt | 4 +- .../generated/ArraysFromJavaCollections.kt | 2 +- .../src/generated/ArraysFromJavaIterables.kt | 6 +- .../JavaUtilIterablesFromJavaCollections.kt | 2 +- .../generated/StandardFromJavaCollections.kt | 2 +- .../generated/StandardFromJavaIterables.kt | 14 ++- libraries/stdlib/test/GenerateStandardLib.kt | 94 +++++++++---------- 8 files changed, 81 insertions(+), 60 deletions(-) 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