diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 2e97c95dbb8..d784db5b4a1 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -4147,6 +4147,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt63841.kt"); } + @Test + @TestMetadata("kt64077.kt") + public void testKt64077() throws Exception { + runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt"); + } + @Test @TestMetadata("kt64222.kt") public void testKt64222() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index f0d68cf422b..146c4ff7a43 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java @@ -2889,6 +2889,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index d9d6e8fb92b..9a2fdeccc38 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -4147,6 +4147,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt63841.kt"); } + @Test + @TestMetadata("kt64077.kt") + public void testKt64077() throws Exception { + runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt"); + } + @Test @TestMetadata("kt64222.kt") public void testKt64222() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index 8fd51d87191..168176ab6e0 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java @@ -2889,6 +2889,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index d9e61555e70..36316eb7264 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -4141,6 +4141,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt63841.kt"); } + @Test + @TestMetadata("kt64077.kt") + public void testKt64077() throws Exception { + runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt"); + } + @Test @TestMetadata("kt64222.kt") public void testKt64222() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index c9bbe53a75a..f9eac887122 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -4147,6 +4147,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt63841.kt"); } + @Test + @TestMetadata("kt64077.kt") + public void testKt64077() throws Exception { + runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt"); + } + @Test @TestMetadata("kt64222.kt") public void testKt64222() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 484aab09e5c..795690f9784 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -2872,6 +2872,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index f84e8279ec7..e38e75c146d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java @@ -2872,6 +2872,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 91af18615a2..004d8766595 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -2872,6 +2872,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/testData/codegen/box/builderInference/issues/kt49283.kt b/compiler/testData/codegen/box/builderInference/issues/kt49283.kt new file mode 100644 index 00000000000..274aca05080 --- /dev/null +++ b/compiler/testData/codegen/box/builderInference/issues/kt49283.kt @@ -0,0 +1,18 @@ +// TARGET_BACKEND: JVM_IR +// WITH_STDLIB +// ISSUE: KT-49283 + +// IGNORE_BACKEND_K1: ANY + +fun takeListOfStrings(x: List) {} + +fun box(): String { + val result = buildList l1@ { // Not enough information to infer type variable E, but could be inferred into String + val anotherList = buildList { + takeListOfStrings(this) + this@l1.add("OK") + } + } + + return result[0] +} diff --git a/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.fir.kt b/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.fir.kt new file mode 100644 index 00000000000..f43fae90940 --- /dev/null +++ b/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.fir.kt @@ -0,0 +1,21 @@ +// ISSUE: KT-64077 +fun build(block: InvBuilder.() -> Unit): R1 = TODO() +fun build2(block: InvBuilder.() -> Unit): R2 = TODO() + +class InvBuilder() { + fun set(r: R) {} + fun get(): R = TODO() +} + +fun consumeInt(e: Int) {} + +fun test() { + val ret = build { + set("") + build2 { + set(1) + consumeInt(this@build.get()) // K1 red ARGUMENT_TYPE_MISMATCH, runtime crash K2 + } + Unit // This unit is essential!!! + } +} diff --git a/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt b/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt new file mode 100644 index 00000000000..c964419c68c --- /dev/null +++ b/compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt @@ -0,0 +1,21 @@ +// ISSUE: KT-64077 +fun build(block: InvBuilder.() -> Unit): R1 = TODO() +fun build2(block: InvBuilder.() -> Unit): R2 = TODO() + +class InvBuilder() { + fun set(r: R) {} + fun get(): R = TODO() +} + +fun consumeInt(e: Int) {} + +fun test() { + val ret = build { + set("") + build2 { + set(1) + consumeInt(this@build.get()) // K1 red ARGUMENT_TYPE_MISMATCH, runtime crash K2 + } + Unit // This unit is essential!!! + } +} 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 77638b596ba..bf2e62be5a3 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 @@ -4147,6 +4147,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt63841.kt"); } + @Test + @TestMetadata("kt64077.kt") + public void testKt64077() throws Exception { + runTest("compiler/testData/diagnostics/tests/builderInference/issues/kt64077.kt"); + } + @Test @TestMetadata("kt64222.kt") public void testKt64222() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java index f9309862a2c..31cbab6857e 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java @@ -2872,6 +2872,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index f232bf34d4e..5892f74a073 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -2872,6 +2872,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index c357b52b702..ed17a0001a8 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -2872,6 +2872,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @Test + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @Test @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 7378216f6ff..c74f34702e6 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -2505,6 +2505,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/builderInference/issues/kt49263.kt"); } + @TestMetadata("kt49283.kt") + public void testKt49283() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/issues/kt49283.kt"); + } + @TestMetadata("kt50453.kt") public void testKt50453() throws Exception { runTest("compiler/testData/codegen/box/builderInference/issues/kt50453.kt");