[FIR] Remove a hack about local classes
^KT-54390 Fixed
This commit is contained in:
committed by
Space Team
parent
f9c6af4d2a
commit
2c16c9a35b
-8
@@ -106,14 +106,6 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori
|
|||||||
|
|
||||||
internal fun KtClassLikeSymbol.getSymbolKind(): KtSymbolKind {
|
internal fun KtClassLikeSymbol.getSymbolKind(): KtSymbolKind {
|
||||||
val firSymbol = firSymbol
|
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 {
|
return when {
|
||||||
firSymbol.classId.isNestedClass -> KtSymbolKind.CLASS_MEMBER
|
firSymbol.classId.isNestedClass -> KtSymbolKind.CLASS_MEMBER
|
||||||
firSymbol.isLocal -> KtSymbolKind.LOCAL
|
firSymbol.isLocal -> KtSymbolKind.LOCAL
|
||||||
|
|||||||
+6
@@ -524,6 +524,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt");
|
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
|
@Test
|
||||||
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
||||||
public void testPropertyFromJavaPlusAssign() throws Exception {
|
public void testPropertyFromJavaPlusAssign() throws Exception {
|
||||||
|
|||||||
+6
@@ -524,6 +524,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt");
|
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
|
@Test
|
||||||
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
||||||
public void testPropertyFromJavaPlusAssign() throws Exception {
|
public void testPropertyFromJavaPlusAssign() throws Exception {
|
||||||
|
|||||||
+5
@@ -444,6 +444,11 @@ public class LazyBodyIsNotTouchedTestGenerated extends AbstractLazyBodyIsNotTouc
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt");
|
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")
|
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
||||||
public void testPropertyFromJavaPlusAssign() throws Exception {
|
public void testPropertyFromJavaPlusAssign() throws Exception {
|
||||||
runTest("compiler/fir/analysis-tests/testData/resolve/propertyFromJavaPlusAssign.kt");
|
runTest("compiler/fir/analysis-tests/testData/resolve/propertyFromJavaPlusAssign.kt");
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
FILE: properLocalPackages.kt
|
||||||
|
package a.b
|
||||||
|
|
||||||
|
public final class X : R|kotlin/Any| {
|
||||||
|
public constructor(): R|a/b/X| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
public final fun foo(): R|kotlin/Unit| {
|
||||||
|
local final class U : R|kotlin/Any| {
|
||||||
|
public constructor(): R|<local>/U| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
local final inner class K : R|kotlin/Any| {
|
||||||
|
public <local>/U.constructor(): R|<local>/U.K| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
local final inner class D : R|kotlin/Any| {
|
||||||
|
public <local>/U.K.constructor(): R|<local>/U.K.D| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
public final fun check(): R|kotlin/Unit| {
|
||||||
|
local final class F : R|kotlin/Any| {
|
||||||
|
public constructor(): R|<local>/F| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
local final inner class L : R|kotlin/Any| {
|
||||||
|
public <local>/F.constructor(): R|<local>/F.L| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
local final class T : R|kotlin/Any| {
|
||||||
|
public constructor(): R|<local>/U.T| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<!NESTED_CLASS_NOT_ALLOWED!>class T<!>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
@@ -524,6 +524,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt");
|
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
|
@Test
|
||||||
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
||||||
public void testPropertyFromJavaPlusAssign() throws Exception {
|
public void testPropertyFromJavaPlusAssign() throws Exception {
|
||||||
|
|||||||
+6
@@ -524,6 +524,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems2.kt");
|
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
|
@Test
|
||||||
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
@TestMetadata("propertyFromJavaPlusAssign.kt")
|
||||||
public void testPropertyFromJavaPlusAssign() throws Exception {
|
public void testPropertyFromJavaPlusAssign() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user