diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java index 00cf7555b65..c77aa11a23e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java @@ -4251,6 +4251,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samSupertypeWithOverride.kt"); } + @Test + @TestMetadata("samVsLambda.kt") + public void testSamVsLambda() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt"); + } + @Test @TestMetadata("samWithEquals.kt") public void testSamWithEquals() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java index fe6b55b4cde..3b931ad7dc3 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java @@ -4251,6 +4251,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samSupertypeWithOverride.kt"); } + @Test + @TestMetadata("samVsLambda.kt") + public void testSamVsLambda() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt"); + } + @Test @TestMetadata("samWithEquals.kt") public void testSamWithEquals() throws Exception { diff --git a/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.fir.txt b/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.fir.txt new file mode 100644 index 00000000000..3cea9985c2a --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.fir.txt @@ -0,0 +1,21 @@ +FILE: package1.kt + package p1 + + public abstract fun interface SamUnit : R|kotlin/Any| { + public abstract fun foo(): R|kotlin/Unit| + + } + public final fun bar(x: R|kotlin/String|, y: R|kotlin/String|, z: R|p1/SamUnit|): R|kotlin/Unit| { + } +FILE: package2.kt + package p2 + + public final fun bar(x: R|kotlin/Any|, y: R|kotlin/Any|, z: R|() -> kotlin/Unit|): R|kotlin/Unit| { + } +FILE: main.kt + public final fun main(): R|kotlin/Unit| { + R|p2/bar|(String(), String(), = bar@fun (): R|kotlin/Unit| { + ^@bar Unit + } + ) + } diff --git a/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt b/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt new file mode 100644 index 00000000000..c468c919b6a --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt @@ -0,0 +1,28 @@ +// ISSUE: KT-56614 + +// FILE: package1.kt + +package p1 + +fun interface SamUnit { + fun foo() +} + +fun bar(x: String, y: String, z: SamUnit) { +} + +// FILE: package2.kt + +package p2 + +fun bar(x: Any, y: Any, z: () -> Unit) { +} + +// FILE: main.kt + +import p1.* +import p2.* + +fun main() { + bar("", "") {} // Resolves to p1.bar in K1, but to p2.bar in K2 +} diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java index fd2d9cd05a4..c01e8492280 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java @@ -4251,6 +4251,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samSupertypeWithOverride.kt"); } + @Test + @TestMetadata("samVsLambda.kt") + public void testSamVsLambda() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt"); + } + @Test @TestMetadata("samWithEquals.kt") public void testSamWithEquals() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java index e215467653f..95567d45270 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java @@ -4251,6 +4251,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samSupertypeWithOverride.kt"); } + @Test + @TestMetadata("samVsLambda.kt") + public void testSamVsLambda() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/samConversions/samVsLambda.kt"); + } + @Test @TestMetadata("samWithEquals.kt") public void testSamWithEquals() throws Exception {