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 9252c57aae6..4a9665993a1 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 @@ -19732,6 +19732,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/j+k/privateNestedClassStaticMember.kt"); } + @Test + @TestMetadata("privatePropertyAndSetterMultiModule.kt") + public void testPrivatePropertyAndSetterMultiModule() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt"); + } + @Test @TestMetadata("protectedStaticSamePackage.kt") public void testProtectedStaticSamePackage() 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 eab37bec9d3..8fe1708beda 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 @@ -19732,6 +19732,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/j+k/privateNestedClassStaticMember.kt"); } + @Test + @TestMetadata("privatePropertyAndSetterMultiModule.kt") + public void testPrivatePropertyAndSetterMultiModule() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt"); + } + @Test @TestMetadata("protectedStaticSamePackage.kt") public void testProtectedStaticSamePackage() throws Exception { diff --git a/compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.overrides.txt b/compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.overrides.txt index 97dd656c1ce..a01532a7785 100644 --- a/compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.overrides.txt +++ b/compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.overrides.txt @@ -9,6 +9,9 @@ C: D: [Source]: public open override fun getName(): R|kotlin/String| from Java enhancement scope for /D [id: 0] [Enhancement]: public abstract fun getName(): R|kotlin/String!| from Substitution scope for [Java enhancement scope for /B] for type C [id: 1] + [Source]: public open override fun setName(newName: R|kotlin/String|): R|kotlin/Any?| from Java enhancement scope for /D [id: 0] + [SubstitutionOverride]: public abstract fun setName(newName: R|kotlin/String!|): R|kotlin/Any!| from Substitution scope for [Java enhancement scope for /B] for type C [id: 1] + [Enhancement]: public abstract fun setName(newName: R|kotlin/String!|): R|ft| from Java enhancement scope for /B [id: 2] [Source]: private final var name: R|kotlin/String| = R|/name| from Java enhancement scope for /D [id: 0] [Source]: private final var name: R|kotlin/String| = R|/name| from Use site scope of /C [id: 0] 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 3a4b7a32353..46992b6f0a3 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 @@ -19732,6 +19732,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/j+k/privateNestedClassStaticMember.kt"); } + @Test + @TestMetadata("privatePropertyAndSetterMultiModule.kt") + public void testPrivatePropertyAndSetterMultiModule() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt"); + } + @Test @TestMetadata("protectedStaticSamePackage.kt") public void testProtectedStaticSamePackage() 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 e956c3ef7fc..9e784605098 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 @@ -19738,6 +19738,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/j+k/privateNestedClassStaticMember.kt"); } + @Test + @TestMetadata("privatePropertyAndSetterMultiModule.kt") + public void testPrivatePropertyAndSetterMultiModule() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt"); + } + @Test @TestMetadata("protectedStaticSamePackage.kt") public void testProtectedStaticSamePackage() throws Exception { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt index 37d4b4db595..2f74ed2fa46 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.java.scopes import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunctionCopy @@ -549,6 +550,8 @@ class JavaClassUseSiteMemberScope( } private fun FirPropertySymbol.isOverriddenInClassBy(functionSymbol: FirNamedFunctionSymbol): Boolean { + if (rawStatus.visibility == Visibilities.Private) return false + val accessorDescriptors = when (val fir = fir) { is FirSyntheticProperty -> { if (fir.getter.delegate.symbol == functionSymbol || fir.setter?.delegate?.symbol == functionSymbol) return true diff --git a/compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt b/compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt new file mode 100644 index 00000000000..82fe0ff330e --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt @@ -0,0 +1,46 @@ +// FIR_IDENTICAL +// SKIP_TXT + +// MODULE: lib + +// FILE: JBaseInterface.java +public interface JBaseInterface { + String getData2(); + void setData2(String data); + + String getData4(); + void setData4(String data); + + String getData5(); + void setData5(String data); +} + +// FILE: KIntermediateClass.kt +open class KIntermediateClass : JBaseInterface { + private var data2: String? = "" + override fun getData2(): String = "" + override fun setData2(data: String) {} + + private var data4: String? = "" + override fun getData4(): String? = "" + override fun setData4(data: String) {} + + private var data5: String = "" + override fun getData5(): String = "" + override fun setData5(data: String?) {} +} + +// FILE: JChildClass.java +public class JChildClass extends KIntermediateClass {} + +// MODULE: main(lib) + +// FILE: Main.kt +fun main(editorTabs: JChildClass) { + editorTabs.getData2() + editorTabs.setData2("") + editorTabs.getData4() + editorTabs.setData4("") + editorTabs.getData5() + editorTabs.setData5("") +} 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 9af6550c9fd..b0512916469 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 @@ -19738,6 +19738,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/j+k/privateNestedClassStaticMember.kt"); } + @Test + @TestMetadata("privatePropertyAndSetterMultiModule.kt") + public void testPrivatePropertyAndSetterMultiModule() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/privatePropertyAndSetterMultiModule.kt"); + } + @Test @TestMetadata("protectedStaticSamePackage.kt") public void testProtectedStaticSamePackage() throws Exception {