[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
@@ -41,7 +41,7 @@ internal class FirComponentCallImpl(
override val componentIndex: Int,
) : FirComponentCall() {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"), null)
override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"))
override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Operator
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.references
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -20,7 +19,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirBackingFieldReference : FirResolvedNamedReference() {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val resolvedSymbol: FirBackingFieldSymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitBackingFieldReference(this, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.references
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -20,7 +19,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirDelegateFieldReference : FirResolvedNamedReference() {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val resolvedSymbol: FirDelegateFieldSymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDelegateFieldReference(this, data)
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -21,7 +20,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirErrorNamedReference : FirNamedReference(), FirDiagnosticHolder {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val diagnostic: ConeDiagnostic
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorNamedReference(this, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.references
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -19,7 +18,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirNamedReference : FirReference() {
abstract override val source: KtSourceElement?
abstract val name: Name
abstract val candidateSymbol: FirBasedSymbol<*>?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitNamedReference(this, data)
@@ -0,0 +1,29 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.references
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirNamedReferenceWithCandidateBase : FirNamedReference() {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract val candidateSymbol: FirBasedSymbol<*>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitNamedReferenceWithCandidateBase(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformNamedReferenceWithCandidateBase(this, data) as E
}
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirResolvedCallableReference : FirResolvedNamedReference() {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val resolvedSymbol: FirBasedSymbol<*>
abstract val inferredTypeArguments: List<ConeKotlinType>
abstract val mappedArguments: CallableReferenceMappedArguments
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirResolvedErrorReference : FirResolvedNamedReference(), FirDiagnosticHolder {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val resolvedSymbol: FirBasedSymbol<*>
abstract override val diagnostic: ConeDiagnostic
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirResolvedNamedReference : FirNamedReference() {
abstract override val source: KtSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract val resolvedSymbol: FirBasedSymbol<*>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedNamedReference(this, data)
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.impl.FirBackingFieldReferenceImpl
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -25,13 +24,11 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl
class FirBackingFieldReferenceBuilder {
var source: KtSourceElement? = null
var candidateSymbol: FirBasedSymbol<*>? = null
lateinit var resolvedSymbol: FirBackingFieldSymbol
fun build(): FirBackingFieldReference {
return FirBackingFieldReferenceImpl(
source,
candidateSymbol,
resolvedSymbol,
)
}
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.references.impl.FirDelegateFieldReferenceImpl
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -25,13 +24,11 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl
class FirDelegateFieldReferenceBuilder {
var source: KtSourceElement? = null
var candidateSymbol: FirBasedSymbol<*>? = null
lateinit var resolvedSymbol: FirDelegateFieldSymbol
fun build(): FirDelegateFieldReference {
return FirDelegateFieldReferenceImpl(
source,
candidateSymbol,
resolvedSymbol,
)
}
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -25,13 +24,11 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl
class FirErrorNamedReferenceBuilder {
var source: KtSourceElement? = null
var candidateSymbol: FirBasedSymbol<*>? = null
lateinit var diagnostic: ConeDiagnostic
fun build(): FirErrorNamedReference {
return FirErrorNamedReferenceImpl(
source,
candidateSymbol,
diagnostic,
)
}
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -26,14 +25,12 @@ import org.jetbrains.kotlin.name.Name
class FirSimpleNamedReferenceBuilder {
var source: KtSourceElement? = null
lateinit var name: Name
var candidateSymbol: FirBasedSymbol<*>? = null
@OptIn(FirImplementationDetail::class)
fun build(): FirNamedReference {
return FirSimpleNamedReference(
source,
name,
candidateSymbol,
)
}
@@ -9,7 +9,6 @@ package org.jetbrains.kotlin.fir.references.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -21,7 +20,6 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirBackingFieldReferenceImpl(
override val source: KtSourceElement?,
override val candidateSymbol: FirBasedSymbol<*>?,
override val resolvedSymbol: FirBackingFieldSymbol,
) : FirBackingFieldReference() {
override val name: Name get() = Name.identifier("\$field")
@@ -9,7 +9,6 @@ package org.jetbrains.kotlin.fir.references.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -21,7 +20,6 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirDelegateFieldReferenceImpl(
override val source: KtSourceElement?,
override val candidateSymbol: FirBasedSymbol<*>?,
override val resolvedSymbol: FirDelegateFieldSymbol,
) : FirDelegateFieldReference() {
override val name: Name get() = Name.identifier("\$delegate")
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.fir.references.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -21,7 +20,6 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirErrorNamedReferenceImpl(
override val source: KtSourceElement?,
override val candidateSymbol: FirBasedSymbol<*>?,
override val diagnostic: ConeDiagnostic,
) : FirErrorNamedReference() {
override val name: Name = Name.special("<${diagnostic.reason}>")
@@ -24,8 +24,6 @@ class FirPropertyFromParameterResolvedNamedReference @FirImplementationDetail co
override val name: Name,
override val resolvedSymbol: FirBasedSymbol<*>,
) : FirResolvedNamedReference() {
override val candidateSymbol: FirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyFromParameterResolvedNamedReference {
@@ -27,8 +27,6 @@ internal class FirResolvedCallableReferenceImpl(
override val inferredTypeArguments: MutableList<ConeKotlinType>,
override val mappedArguments: CallableReferenceMappedArguments,
) : FirResolvedCallableReference() {
override val candidateSymbol: FirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedCallableReferenceImpl {
@@ -25,8 +25,6 @@ internal class FirResolvedErrorReferenceImpl(
override val resolvedSymbol: FirBasedSymbol<*>,
override val diagnostic: ConeDiagnostic,
) : FirResolvedErrorReference() {
override val candidateSymbol: FirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedErrorReferenceImpl {
@@ -23,8 +23,6 @@ internal class FirResolvedNamedReferenceImpl(
override val name: Name,
override val resolvedSymbol: FirBasedSymbol<*>,
) : FirResolvedNamedReference() {
override val candidateSymbol: FirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedNamedReferenceImpl {
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.fir.references.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -19,10 +18,9 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
open class FirSimpleNamedReference @FirImplementationDetail constructor(
class FirSimpleNamedReference @FirImplementationDetail constructor(
override val source: KtSourceElement?,
override val name: Name,
override val candidateSymbol: FirBasedSymbol<*>?,
) : FirNamedReference() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -125,6 +125,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReferenceWithCandidateBase
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -262,6 +263,8 @@ abstract class FirDefaultVisitor<out R, in D> : FirVisitor<R, D>() {
override fun visitNamedReference(namedReference: FirNamedReference, data: D): R = visitReference(namedReference, data)
override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase, data: D): R = visitNamedReference(namedReferenceWithCandidateBase, data)
override fun visitSuperReference(superReference: FirSuperReference, data: D): R = visitReference(superReference, data)
override fun visitThisReference(thisReference: FirThisReference, data: D): R = visitReference(thisReference, data)
@@ -125,6 +125,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReferenceWithCandidateBase
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -262,6 +263,8 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
override fun visitNamedReference(namedReference: FirNamedReference) = visitReference(namedReference)
override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase) = visitNamedReference(namedReferenceWithCandidateBase)
override fun visitSuperReference(superReference: FirSuperReference) = visitReference(superReference)
override fun visitThisReference(thisReference: FirThisReference) = visitReference(thisReference)
@@ -125,6 +125,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReferenceWithCandidateBase
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -633,6 +634,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElement(namedReference, data)
}
open fun transformNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase, data: D): FirReference {
return transformElement(namedReferenceWithCandidateBase, data)
}
open fun transformErrorNamedReference(errorNamedReference: FirErrorNamedReference, data: D): FirReference {
return transformElement(errorNamedReference, data)
}
@@ -1201,6 +1206,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformNamedReference(namedReference, data)
}
final override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase, data: D): FirReference {
return transformNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase, data)
}
final override fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference, data: D): FirReference {
return transformErrorNamedReference(errorNamedReference, data)
}
@@ -125,6 +125,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReferenceWithCandidateBase
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -394,6 +395,8 @@ abstract class FirVisitor<out R, in D> {
open fun visitNamedReference(namedReference: FirNamedReference, data: D): R = visitElement(namedReference, data)
open fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase, data: D): R = visitElement(namedReferenceWithCandidateBase, data)
open fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference, data: D): R = visitElement(errorNamedReference, data)
open fun visitSuperReference(superReference: FirSuperReference, data: D): R = visitElement(superReference, data)
@@ -125,6 +125,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReferenceWithCandidateBase
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -632,6 +633,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(namedReference)
}
open fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase) {
visitElement(namedReferenceWithCandidateBase)
}
open fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference) {
visitElement(errorNamedReference)
}
@@ -1200,6 +1205,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitNamedReference(namedReference)
}
final override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase, data: Nothing?) {
visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase)
}
final override fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference, data: Nothing?) {
visitErrorNamedReference(errorNamedReference)
}
@@ -782,12 +782,15 @@ class FirRenderer(
}
override fun visitNamedReference(namedReference: FirNamedReference) {
val symbol = namedReference.candidateSymbol
when {
namedReference is FirErrorNamedReference -> print("<${namedReference.diagnostic.reason}>#")
symbol != null -> print("R?C|${symbol.render()}|")
else -> print("${namedReference.name}#")
}
print("${namedReference.name}#")
}
override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase) {
print("R?C|${namedReferenceWithCandidateBase.candidateSymbol.render()}|")
}
override fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference) {
print("<${errorNamedReference.diagnostic.reason}>#")
}
override fun visitBackingFieldReference(backingFieldReference: FirBackingFieldReference) {
@@ -1063,10 +1066,6 @@ class FirRenderer(
binaryLogicExpression.rightOperand.accept(this)
}
override fun visitErrorNamedReference(errorNamedReference: FirErrorNamedReference) {
visitNamedReference(errorNamedReference)
}
override fun visitEffectDeclaration(effectDeclaration: FirEffectDeclaration) {
contractRenderer?.render(effectDeclaration)
}
@@ -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 {