FIR: Rework qualifier-in-expression resolution

Get rid of stateful FirQualifiedNameResolver
Resolve a.b.c-like calls step-by-step using just recursion

^KT-48363 Fixed
This commit is contained in:
Denis.Zharkov
2021-09-07 13:09:05 +03:00
committed by teamcityserver
parent 69f7c2278d
commit 9575d4d242
17 changed files with 341 additions and 182 deletions
@@ -1,5 +1,5 @@
KT element: KtNameReferenceExpression
FIR element: FirFunctionCallImpl
FIR element: FirResolvedQualifierImpl
FIR element rendered:
Q|A.B|.R|/A.B.C.C|()
Q|A.B|
@@ -1,5 +1,5 @@
KT element: KtDotQualifiedExpression
FIR element: FirFunctionCallImpl
FIR element: FirResolvedQualifierImpl
FIR element rendered:
Q|A.B|.R|/A.B.C.C|()
Q|A.B|
@@ -22641,6 +22641,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
runTest("compiler/testData/diagnostics/tests/qualifiedExpression/TypeWithError.kt");
}
@Test
@TestMetadata("variableVsImportedClassifier.kt")
public void testVariableVsImportedClassifier() throws Exception {
runTest("compiler/testData/diagnostics/tests/qualifiedExpression/variableVsImportedClassifier.kt");
}
@Test
@TestMetadata("visibleClassVsQualifiedClass.kt")
public void testVisibleClassVsQualifiedClass() throws Exception {
@@ -1,2 +1,2 @@
Resolved to:
0: (in t.A.Named) val i: kotlin.Int
0: (in t) class A