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 4eb1cdc3e19..2fd0e4c5245 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 @@ -24484,6 +24484,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/multiplatform/kt63860_2.kt"); } + @Test + @TestMetadata("kt64166.kt") + public void testKt64166() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/kt64166.kt"); + } + @Test @TestMetadata("manyImplMemberNotImplemented.kt") public void testManyImplMemberNotImplemented() 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 69e07ddaad5..fc449beba05 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 @@ -24484,6 +24484,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/multiplatform/kt63860_2.kt"); } + @Test + @TestMetadata("kt64166.kt") + public void testKt64166() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/kt64166.kt"); + } + @Test @TestMetadata("manyImplMemberNotImplemented.kt") public void testManyImplMemberNotImplemented() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java index ca2a3accae9..31d534805db 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java @@ -331,6 +331,12 @@ public class FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated extends Abst runTest("compiler/testData/diagnostics/tests/multiplatform/kt63860_2.kt"); } + @Test + @TestMetadata("kt64166.kt") + public void testKt64166() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/kt64166.kt"); + } + @Test @TestMetadata("manyImplMemberNotImplemented.kt") public void testManyImplMemberNotImplemented() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java index 0e19b68c57c..1a3c3a1d3f3 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java @@ -331,6 +331,12 @@ public class FirOldFrontendMPPDiagnosticsWithPsiTestGenerated extends AbstractFi runTest("compiler/testData/diagnostics/tests/multiplatform/kt63860_2.kt"); } + @Test + @TestMetadata("kt64166.kt") + public void testKt64166() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/kt64166.kt"); + } + @Test @TestMetadata("manyImplMemberNotImplemented.kt") public void testManyImplMemberNotImplemented() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualResolver.kt index 2dc8ef39e35..38a01f16c5d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualResolver.kt @@ -37,6 +37,7 @@ object FirExpectActualResolver { var actualContainingClass: FirRegularClassSymbol? = null var expectContainingClass: FirRegularClassSymbol? = null val candidates = when { + callableId.isLocal -> return emptyMap() classId != null -> { actualContainingClass = useSiteSession.symbolProvider.getClassLikeSymbolByClassId(classId) ?.fullyExpandedClass(useSiteSession) @@ -49,7 +50,6 @@ object FirExpectActualResolver { else -> expectContainingClass?.getMembersForExpectClass(actualSymbol.name) }.orEmpty() } - callableId.isLocal -> return emptyMap() else -> { val scope = FirPackageMemberScope(callableId.packageName, useSiteSession, useSiteSession.dependenciesSymbolProvider) mutableListOf>().apply { diff --git a/compiler/testData/diagnostics/tests/multiplatform/kt64166.kt b/compiler/testData/diagnostics/tests/multiplatform/kt64166.kt new file mode 100644 index 00000000000..389a8d0a723 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/kt64166.kt @@ -0,0 +1,15 @@ +// FIR_IDENTICAL +// MODULE: m1-common +// FILE: common.kt + +interface I { + fun foo() {} +} +expect class Foo : I + +// MODULE: m2-jvm()()(m1-common) +// FILE: jvm.kt + +actual class Foo : I by object : I { + override fun foo() {} +} 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 2ca82c64516..e2dca6272dc 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 @@ -24484,6 +24484,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/multiplatform/kt63860_2.kt"); } + @Test + @TestMetadata("kt64166.kt") + public void testKt64166() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/kt64166.kt"); + } + @Test @TestMetadata("manyImplMemberNotImplemented.kt") public void testManyImplMemberNotImplemented() throws Exception {