From e8cf0b5d4f0cc522c29c96cf5e04a26a46739390 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 30 Sep 2019 13:24:39 +0300 Subject: [PATCH] Add test for kotlin.streams function usage in Kotlin code NB: does not pass in javac mode due to lack of JvmPackageName support --- compiler/testData/diagnostics/testsWithStdLib/streams.kt | 9 +++++++++ .../testData/diagnostics/testsWithStdLib/streams.txt | 3 +++ .../kotlin/checkers/KotlinMultiFileTestWithJava.java | 9 +++++---- .../codegen/forTestCompile/ForTestCompileRuntime.java | 5 +++++ .../checkers/DiagnosticsTestWithStdLibGenerated.java | 5 +++++ .../DiagnosticsTestWithStdLibUsingJavacGenerated.java | 5 +++++ 6 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/streams.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/streams.txt diff --git a/compiler/testData/diagnostics/testsWithStdLib/streams.kt b/compiler/testData/diagnostics/testsWithStdLib/streams.kt new file mode 100644 index 00000000000..a447b3bba69 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/streams.kt @@ -0,0 +1,9 @@ +// FULL_JDK +// STDLIB_JDK8 + +import java.util.* +import kotlin.streams.toList + +fun testStreams(list: ArrayList) { + list.stream().toList() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/streams.txt b/compiler/testData/diagnostics/testsWithStdLib/streams.txt new file mode 100644 index 00000000000..f8a8fa2235a --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/streams.txt @@ -0,0 +1,3 @@ +package + +public fun testStreams(/*0*/ list: java.util.ArrayList): kotlin.Unit diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java index dd8a69a6b3a..b87603df20c 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java @@ -104,13 +104,14 @@ public abstract class KotlinMultiFileTestWithJava extends KtUsefulTestCase result.add(KotlinTestUtils.getAnnotationsJar()); result.addAll(getExtraClasspath()); - boolean loadAndroidAnnotations = InTextDirectivesUtils.isDirectiveDefined( - FilesKt.readText(file, Charsets.UTF_8), "ANDROID_ANNOTATIONS" - ); + String fileText = FilesKt.readText(file, Charsets.UTF_8); - if (loadAndroidAnnotations) { + if (InTextDirectivesUtils.isDirectiveDefined(fileText, "ANDROID_ANNOTATIONS")) { result.add(ForTestCompileRuntime.androidAnnotationsForTests()); } + if (InTextDirectivesUtils.isDirectiveDefined(fileText, "STDLIB_JDK8")) { + result.add(ForTestCompileRuntime.runtimeJarForTestsWithJdk8()); + } return result; } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java index d1cd5445579..13d69085b66 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java @@ -25,6 +25,11 @@ public class ForTestCompileRuntime { return assertExists(new File("dist/kotlinc/lib/kotlin-stdlib.jar")); } + @NotNull + public static File runtimeJarForTestsWithJdk8() { + return assertExists(new File("dist/kotlinc/lib/kotlin-stdlib-jdk8.jar")); + } + @NotNull public static File minimalRuntimeJarForTests() { return assertExists(new File("dist/kotlin-stdlib-minimal-for-test.jar")); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java index e9aab98cdbf..32d06b53aba 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java @@ -154,6 +154,11 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW runTest("compiler/testData/diagnostics/testsWithStdLib/shadowingInDestructuring.kt"); } + @TestMetadata("streams.kt") + public void testStreams() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/streams.kt"); + } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java index 0fe601adfba..23a544c7ec4 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java @@ -154,6 +154,11 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno runTest("compiler/testData/diagnostics/testsWithStdLib/shadowingInDestructuring.kt"); } + @TestMetadata("streams.kt") + public void testStreams() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/streams.kt"); + } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/annotations") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)