[FIR] Get rid of candidateSymbol in FirNamedReference

`candidateSymbol` has any reasonable meaning only for references with
  not completed candidate, so this property is moved from FirNamedReference
  to new node FirNamedReferenceWithCandidateSymbol, which has real
  implementation only in :resolve module (`FirNamedReferenceWithCandidate`)
This commit is contained in:
Dmitriy Novozhilov
2022-12-15 11:11:03 +02:00
committed by Space Team
parent 366edcfe3c
commit 4bddb27ca3
40 changed files with 113 additions and 107 deletions
@@ -152,6 +152,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val wrappedDelegateExpression by element(Expression, wrappedExpression)
val namedReference by element(Reference, reference)
val namedReferenceWithCandidateBase by element(Reference, namedReference)
val errorNamedReference by element(Reference, namedReference, diagnosticHolder)
val superReference by element(Reference, reference)
val thisReference by element(Reference, reference)
@@ -111,7 +111,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(callableReferenceAccess)
impl(componentCall) {
default("calleeReference", "FirSimpleNamedReference(source, Name.identifier(\"component\$componentIndex\"), null)")
default("calleeReference", "FirSimpleNamedReference(source, Name.identifier(\"component\$componentIndex\"))")
useTypes(simpleNamedReferenceType, nameType)
optInToInternals()
}
@@ -404,27 +404,22 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
}
impl(resolvedNamedReference) {
defaultNull("candidateSymbol", withGetter = true)
}
impl(resolvedNamedReference)
impl(resolvedNamedReference, "FirPropertyFromParameterResolvedNamedReference") {
defaultNull("candidateSymbol", withGetter = true)
publicImplementation()
}
impl(resolvedErrorReference) {
defaultNull("candidateSymbol", withGetter = true)
}
impl(resolvedErrorReference)
impl(resolvedCallableReference) {
defaultNull("candidateSymbol", withGetter = true)
}
impl(resolvedCallableReference)
impl(namedReference, "FirSimpleNamedReference") {
kind = OpenClass
publicImplementation()
}
noImpl(namedReferenceWithCandidateBase)
impl(delegateFieldReference) {
default("name") {
value = "Name.identifier(\"\\\$delegate\")"
@@ -620,7 +620,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
namedReference.configure {
+name
+field("candidateSymbol", firBasedSymbolType, "*", nullable = true)
}
namedReferenceWithCandidateBase.configure {
+field("candidateSymbol", firBasedSymbolType, "*")
}
resolvedNamedReference.configure {