From 2fddb15539c68c552e982663febd2703002fdf6c Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 25 Jan 2023 10:50:58 +0200 Subject: [PATCH] [Test] Move some builder inference tests from codegen to diagnostics ^KT-56169 --- ...CompilerTestFE10TestdataTestGenerated.java | 12 ++++ ...irOldFrontendDiagnosticsTestGenerated.java | 12 ++++ ...DiagnosticsWithLightTreeTestGenerated.java | 12 ++++ .../box/inference/builderInference/kt50520.kt | 11 ---- .../builderInference/kt48445.fir.kt} | 46 ++++++------- .../builderInference/kt48445.kt | 64 +++++++++++++++++++ .../builderInference/kt50520.fir.kt | 10 +++ .../builderInference/kt50520.kt | 10 +++ .../test/runners/DiagnosticTestGenerated.java | 12 ++++ 9 files changed, 150 insertions(+), 39 deletions(-) delete mode 100644 compiler/testData/codegen/box/inference/builderInference/kt50520.kt rename compiler/testData/{codegen/box/inference/builderInference/kt48445.kt => diagnostics/testsWithStdLib/builderInference/kt48445.fir.kt} (54%) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.fir.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 5dd323410b7..0cd7533eea7 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -36426,6 +36426,18 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/inferCoroutineTypeInOldVersion.kt"); } + @Test + @TestMetadata("kt48445.kt") + public void testKt48445() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt"); + } + + @Test + @TestMetadata("kt50520.kt") + public void testKt50520() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt"); + } + @Test @TestMetadata("resolveUsualCallWithBuilderInference.kt") public void testResolveUsualCallWithBuilderInference() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 86dd508d719..285726b6180 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -36522,6 +36522,18 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/inferCoroutineTypeInOldVersion.kt"); } + @Test + @TestMetadata("kt48445.kt") + public void testKt48445() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt"); + } + + @Test + @TestMetadata("kt50520.kt") + public void testKt50520() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt"); + } + @Test @TestMetadata("resolveUsualCallWithBuilderInference.kt") public void testResolveUsualCallWithBuilderInference() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 7fb07f7e303..3ba3e093265 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -36426,6 +36426,18 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/inferCoroutineTypeInOldVersion.kt"); } + @Test + @TestMetadata("kt48445.kt") + public void testKt48445() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt"); + } + + @Test + @TestMetadata("kt50520.kt") + public void testKt50520() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt"); + } + @Test @TestMetadata("resolveUsualCallWithBuilderInference.kt") public void testResolveUsualCallWithBuilderInference() throws Exception { diff --git a/compiler/testData/codegen/box/inference/builderInference/kt50520.kt b/compiler/testData/codegen/box/inference/builderInference/kt50520.kt deleted file mode 100644 index 8b95eaa77bc..00000000000 --- a/compiler/testData/codegen/box/inference/builderInference/kt50520.kt +++ /dev/null @@ -1,11 +0,0 @@ -// WITH_STDLIB -// IGNORE_BACKEND_K2: JVM_IR, JS_IR, NATIVE -// FIR status: different behavour with FE 1.0, reported `NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER` - -fun box(): String { - buildList { - val foo = { first() } - add(0, foo) - } - return "OK" -} diff --git a/compiler/testData/codegen/box/inference/builderInference/kt48445.kt b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.fir.kt similarity index 54% rename from compiler/testData/codegen/box/inference/builderInference/kt48445.kt rename to compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.fir.kt index f939b3569f2..5962b46850c 100644 --- a/compiler/testData/codegen/box/inference/builderInference/kt48445.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.fir.kt @@ -1,7 +1,5 @@ // !LANGUAGE: +UnrestrictedBuilderInference -// IGNORE_BACKEND_K2: JVM_IR, JS_IR, NATIVE -// FIR status: NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER on lazy call (Name3, T) -// WITH_STDLIB +// SKIP_TXT internal class TowerDataElementsForName() { val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { @@ -30,9 +28,9 @@ internal class TowerDataElementsForName2() { } internal class TowerDataElementsForName3() { - val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { @OptIn(ExperimentalStdlibApi::class) - buildList l1@ { + buildList l1@ { for (i in lastIndex downTo 0) { val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { @OptIn(ExperimentalStdlibApi::class) @@ -48,27 +46,19 @@ internal class TowerDataElementsForName3() { } } -//internal class TowerDataElementsForName4() { -// @OptIn(ExperimentalStdlibApi::class) -// val reversedFilteredLocalScopes = buildList l1@ { -// class Foo { -// val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { -// @OptIn(ExperimentalStdlibApi::class) -// buildList { -// for (i in lastIndex downTo 0) { -// add("") -// this@l1.add("") -// } -// } -// } -// } -// } -//} - -fun box(): String { - val x1 = TowerDataElementsForName().reversedFilteredLocalScopes - val x2 = TowerDataElementsForName2().reversedFilteredLocalScopes - val x3 = TowerDataElementsForName3().reversedFilteredLocalScopes -// val x4 = TowerDataElementsForName4().reversedFilteredLocalScopes - return "OK" +internal class TowerDataElementsForName4() { + @OptIn(ExperimentalStdlibApi::class) + val reversedFilteredLocalScopes = buildList l1@ { + class Foo { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList { + for (i in lastIndex downTo 0) { + add("") + this@l1.add("") + } + } + } + } + } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt new file mode 100644 index 00000000000..458b199a9b0 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt @@ -0,0 +1,64 @@ +// !LANGUAGE: +UnrestrictedBuilderInference +// SKIP_TXT + +internal class TowerDataElementsForName() { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList { + for (i in lastIndex downTo 0) { + add("") + } + } + } +} + +internal class TowerDataElementsForName2() { + @OptIn(ExperimentalStdlibApi::class) + val reversedFilteredLocalScopes = buildList { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList { + for (i in lastIndex downTo 0) { + add("") + } + } + } + add(reversedFilteredLocalScopes) + } +} + +internal class TowerDataElementsForName3() { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList l1@ { + for (i in lastIndex downTo 0) { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList { + for (i in lastIndex downTo 0) { + add("") + this@l1.add("") + } + } + } + } + } + } +} + +internal class TowerDataElementsForName4() { + @OptIn(ExperimentalStdlibApi::class) + val reversedFilteredLocalScopes = buildList l1@ { + class Foo { + val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { + @OptIn(ExperimentalStdlibApi::class) + buildList { + for (i in lastIndex downTo 0) { + add("") + this@l1.add("") + } + } + } + } + } +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.fir.kt new file mode 100644 index 00000000000..caecd7bc5a2 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.fir.kt @@ -0,0 +1,10 @@ +// WITH_STDLIB +// SKIP_TXT + +fun box(): String { + buildList { + val foo = { first() } + add(0, foo) + } + return "OK" +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt new file mode 100644 index 00000000000..ad138c6b4c1 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt @@ -0,0 +1,10 @@ +// WITH_STDLIB +// SKIP_TXT + +fun box(): String { + buildList { + val foo = { first() } + add(0, foo) + } + return "OK" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 91ffbe971e3..4e9388f1f00 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -36522,6 +36522,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/inferCoroutineTypeInOldVersion.kt"); } + @Test + @TestMetadata("kt48445.kt") + public void testKt48445() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt48445.kt"); + } + + @Test + @TestMetadata("kt50520.kt") + public void testKt50520() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/kt50520.kt"); + } + @Test @TestMetadata("resolveUsualCallWithBuilderInference.kt") public void testResolveUsualCallWithBuilderInference() throws Exception {