diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt index 43899538bf2..74028a00535 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt @@ -106,14 +106,6 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori internal fun KtClassLikeSymbol.getSymbolKind(): KtSymbolKind { val firSymbol = firSymbol - if (firSymbol.isLocal) { - // TODO: hack should be dropped after KT-54390 - when { - firSymbol is FirRegularClassSymbol && firSymbol.fir.containingClassForLocalAttr == null -> { - return KtSymbolKind.LOCAL - } - } - } return when { firSymbol.classId.isNestedClass -> KtSymbolKind.CLASS_MEMBER firSymbol.isLocal -> KtSymbolKind.LOCAL 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 97b84f80305..f7f0865e415 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 @@ -524,6 +524,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt"); } + @Test + @TestMetadata("properLocalPackages.kt") + public void testProperLocalPackages() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt"); + } + @Test @TestMetadata("propertyFromJavaPlusAssign.kt") public void testPropertyFromJavaPlusAssign() 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 ba4d215fa57..4ba422623bd 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 @@ -524,6 +524,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt"); } + @Test + @TestMetadata("properLocalPackages.kt") + public void testProperLocalPackages() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt"); + } + @Test @TestMetadata("propertyFromJavaPlusAssign.kt") public void testPropertyFromJavaPlusAssign() throws Exception { diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTestGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTestGenerated.java index dc0d18ed2f0..db4ebefb5b9 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTestGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTestGenerated.java @@ -444,6 +444,11 @@ public class LazyBodyIsNotTouchedTestGenerated extends AbstractLazyBodyIsNotTouc runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt"); } + @TestMetadata("properLocalPackages.kt") + public void testProperLocalPackages() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt"); + } + @TestMetadata("propertyFromJavaPlusAssign.kt") public void testPropertyFromJavaPlusAssign() throws Exception { runTest("compiler/fir/analysis-tests/testData/resolve/propertyFromJavaPlusAssign.kt"); diff --git a/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.fir.txt b/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.fir.txt new file mode 100644 index 00000000000..eaaae11b8e4 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.fir.txt @@ -0,0 +1,57 @@ +FILE: properLocalPackages.kt + package a.b + + public final class X : R|kotlin/Any| { + public constructor(): R|a/b/X| { + super() + } + + public final fun foo(): R|kotlin/Unit| { + local final class U : R|kotlin/Any| { + public constructor(): R|/U| { + super() + } + + local final inner class K : R|kotlin/Any| { + public /U.constructor(): R|/U.K| { + super() + } + + local final inner class D : R|kotlin/Any| { + public /U.K.constructor(): R|/U.K.D| { + super() + } + + public final fun check(): R|kotlin/Unit| { + local final class F : R|kotlin/Any| { + public constructor(): R|/F| { + super() + } + + local final inner class L : R|kotlin/Any| { + public /F.constructor(): R|/F.L| { + super() + } + + } + + } + + } + + } + + } + + local final class T : R|kotlin/Any| { + public constructor(): R|/U.T| { + super() + } + + } + + } + + } + + } diff --git a/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt b/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt new file mode 100644 index 00000000000..bbb1943c3e7 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt @@ -0,0 +1,19 @@ +package a.b + +class X { + fun foo() { + class U { + inner class K { + inner class D { + fun check() { + class F { + inner class L + } + } + } + } + + class T + } + } +} 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 9e09d925d19..c0d2081271b 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 @@ -524,6 +524,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt"); } + @Test + @TestMetadata("properLocalPackages.kt") + public void testProperLocalPackages() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt"); + } + @Test @TestMetadata("propertyFromJavaPlusAssign.kt") public void testPropertyFromJavaPlusAssign() 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 3c31f3239e4..f0e96dd318b 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 @@ -524,6 +524,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt"); } + @Test + @TestMetadata("properLocalPackages.kt") + public void testProperLocalPackages() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/properLocalPackages.kt"); + } + @Test @TestMetadata("propertyFromJavaPlusAssign.kt") public void testPropertyFromJavaPlusAssign() throws Exception {