FIR: Rename FirResolvedCallableReference -> FirResolvedNamedReference

^KT-32725 In Progress
This commit is contained in:
Denis Zharkov
2019-10-23 14:51:05 +03:00
parent 5e322a2dd9
commit 1564e72b59
35 changed files with 139 additions and 122 deletions
@@ -965,7 +965,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
simpleName(reference.name) simpleName(reference.name)
} }
} }
is FirResolvedCallableReference -> { is FirResolvedNamedReference -> {
resolved { resolved {
symbolRef(reference.resolvedSymbol) { symbolRef(reference.resolvedSymbol) {
simpleName(reference.name) simpleName(reference.name)
@@ -6,9 +6,10 @@
package org.jetbrains.kotlin.fir.backend package org.jetbrains.kotlin.fir.backend
import com.intellij.psi.PsiCompiledElement import com.intellij.psi.PsiCompiledElement
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
@@ -19,7 +20,10 @@ import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.types.IrErrorType import org.jetbrains.kotlin.ir.types.IrErrorType
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.IrTypeArgument import org.jetbrains.kotlin.ir.types.IrTypeArgument
import org.jetbrains.kotlin.ir.types.impl.* import org.jetbrains.kotlin.ir.types.impl.IrErrorTypeImpl
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.endOffset
import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
@@ -105,7 +109,7 @@ fun FirClassifierSymbol<*>.toIrSymbol(session: FirSession, declarationStorage: F
fun FirReference.toSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbol? { fun FirReference.toSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbol? {
return when (this) { return when (this) {
is FirResolvedCallableReference -> resolvedSymbol.toSymbol(declarationStorage) is FirResolvedNamedReference -> resolvedSymbol.toSymbol(declarationStorage)
is FirThisReference -> { is FirThisReference -> {
when (val boundSymbol = boundSymbol?.toSymbol(declarationStorage)) { when (val boundSymbol = boundSymbol?.toSymbol(declarationStorage)) {
is IrClassSymbol -> boundSymbol.owner.thisReceiver?.symbol is IrClassSymbol -> boundSymbol.owner.thisReceiver?.symbol
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.fir.backend
import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter
@@ -17,13 +18,18 @@ import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.impl.FirPropertyFromParameterCallableReference import org.jetbrains.kotlin.fir.references.impl.FirPropertyFromParameterResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.buildUseSiteMemberScope
import org.jetbrains.kotlin.fir.resolve.calls.SyntheticPropertySymbol import org.jetbrains.kotlin.fir.resolve.calls.SyntheticPropertySymbol
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.typeContext
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
@@ -660,8 +666,8 @@ class Fir2IrVisitor(
private fun FirReference.statementOrigin(): IrStatementOrigin? { private fun FirReference.statementOrigin(): IrStatementOrigin? {
return when (this) { return when (this) {
is FirPropertyFromParameterCallableReference -> IrStatementOrigin.INITIALIZE_PROPERTY_FROM_PARAMETER is FirPropertyFromParameterResolvedNamedReference -> IrStatementOrigin.INITIALIZE_PROPERTY_FROM_PARAMETER
is FirResolvedCallableReference -> when (resolvedSymbol) { is FirResolvedNamedReference -> when (resolvedSymbol) {
is FirAccessorSymbol, is SyntheticPropertySymbol -> IrStatementOrigin.GET_PROPERTY is FirAccessorSymbol, is SyntheticPropertySymbol -> IrStatementOrigin.GET_PROPERTY
else -> null else -> null
} }
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.java.declarations.FirJavaValueParameter
import org.jetbrains.kotlin.fir.java.enhancement.readOnlyToMutable import org.jetbrains.kotlin.fir.java.enhancement.readOnlyToMutable
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.resolve.constructClassType import org.jetbrains.kotlin.fir.resolve.constructClassType
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols
@@ -253,7 +253,7 @@ private fun JavaAnnotationArgument.toFirExpression(
classId, entryName classId, entryName
).firstOrNull() ).firstOrNull()
callableSymbol?.let { callableSymbol?.let {
FirResolvedCallableReferenceImpl(null, entryName, it) FirResolvedNamedReferenceImpl(null, entryName, it)
} }
} else { } else {
null null
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
import org.jetbrains.kotlin.fir.java.createConstant import org.jetbrains.kotlin.fir.java.createConstant
import org.jetbrains.kotlin.fir.java.topLevelName import org.jetbrains.kotlin.fir.java.topLevelName
import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.*
import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
@@ -214,12 +214,12 @@ class KotlinDeserializedJvmSymbolsProvider(
this.calleeReference = when { this.calleeReference = when {
entryClassSymbol != null && (entryClassSymbol as? FirClassSymbol)?.fir is FirEnumEntry -> { entryClassSymbol != null && (entryClassSymbol as? FirClassSymbol)?.fir is FirEnumEntry -> {
FirResolvedCallableReferenceImpl( FirResolvedNamedReferenceImpl(
null, name, entryClassSymbol null, name, entryClassSymbol
) )
} }
entryCallableSymbol != null -> { entryCallableSymbol != null -> {
FirResolvedCallableReferenceImpl( FirResolvedNamedReferenceImpl(
null, name, entryCallableSymbol null, name, entryCallableSymbol
) )
} }
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.java.declarations.FirJavaField
import org.jetbrains.kotlin.fir.java.toConeProjection import org.jetbrains.kotlin.fir.java.toConeProjection
import org.jetbrains.kotlin.fir.java.toNotNullConeKotlinType import org.jetbrains.kotlin.fir.java.toNotNullConeKotlinType
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
import org.jetbrains.kotlin.fir.resolve.constructType import org.jetbrains.kotlin.fir.resolve.constructType
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
@@ -261,7 +261,7 @@ internal fun ConeKotlinType.lexicalCastFrom(session: FirSession, value: String):
} }
if (firStaticProperty != null) { if (firStaticProperty != null) {
FirQualifiedAccessExpressionImpl(null).apply { FirQualifiedAccessExpressionImpl(null).apply {
calleeReference = FirResolvedCallableReferenceImpl( calleeReference = FirResolvedNamedReferenceImpl(
null, name, firStaticProperty.symbol as FirCallableSymbol<*> null, name, firStaticProperty.symbol as FirCallableSymbol<*>
) )
} }
@@ -8,10 +8,13 @@ package org.jetbrains.kotlin.fir.lightTree.fir
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter
import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirQualifiedAccessExpressionImpl import org.jetbrains.kotlin.fir.expressions.impl.FirQualifiedAccessExpressionImpl
import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier
import org.jetbrains.kotlin.fir.references.impl.FirPropertyFromParameterCallableReference import org.jetbrains.kotlin.fir.references.impl.FirPropertyFromParameterResolvedNamedReference
import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
@@ -50,7 +53,7 @@ class ValueParameter(
null, null,
name, name,
FirQualifiedAccessExpressionImpl(null).apply { FirQualifiedAccessExpressionImpl(null).apply {
calleeReference = FirPropertyFromParameterCallableReference( calleeReference = FirPropertyFromParameterResolvedNamedReference(
null, name, this@ValueParameter.firValueParameter.symbol null, name, this@ValueParameter.firValueParameter.symbol
) )
}, },
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.impl.*
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
import org.jetbrains.kotlin.fir.references.impl.FirDelegateFieldReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirDelegateFieldReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
@@ -251,7 +251,7 @@ fun generateAccessExpression(psi: PsiElement?, name: Name): FirQualifiedAccessEx
fun generateResolvedAccessExpression(psi: PsiElement?, variable: FirVariable<*>): FirQualifiedAccessExpression = fun generateResolvedAccessExpression(psi: PsiElement?, variable: FirVariable<*>): FirQualifiedAccessExpression =
FirQualifiedAccessExpressionImpl(psi).apply { FirQualifiedAccessExpressionImpl(psi).apply {
calleeReference = FirResolvedCallableReferenceImpl(psi, variable.name, variable.symbol) calleeReference = FirResolvedNamedReferenceImpl(psi, variable.name, variable.symbol)
} }
internal fun generateDestructuringBlock( internal fun generateDestructuringBlock(
@@ -326,7 +326,7 @@ fun FirModifiableVariable<*>.generateAccessorsByDelegate(session: FirSession, me
else FirConstExpressionImpl(null, IrConstKind.Null, null) else FirConstExpressionImpl(null, IrConstKind.Null, null)
fun propertyRef() = FirCallableReferenceAccessImpl(null).apply { fun propertyRef() = FirCallableReferenceAccessImpl(null).apply {
calleeReference = FirResolvedCallableReferenceImpl(null, variable.name, variable.symbol) calleeReference = FirResolvedNamedReferenceImpl(null, variable.name, variable.symbol)
typeRef = FirImplicitKPropertyTypeRef(null, ConeStarProjection) typeRef = FirImplicitKPropertyTypeRef(null, ConeStarProjection)
} }
@@ -385,7 +385,7 @@ fun FirModifiableVariable<*>.generateAccessorsByDelegate(session: FirSession, me
arguments += thisRef() arguments += thisRef()
arguments += propertyRef() arguments += propertyRef()
arguments += FirQualifiedAccessExpressionImpl(null).apply { arguments += FirQualifiedAccessExpressionImpl(null).apply {
calleeReference = FirResolvedCallableReferenceImpl(psi, DELEGATED_SETTER_PARAM, parameter.symbol) calleeReference = FirResolvedNamedReferenceImpl(psi, DELEGATED_SETTER_PARAM, parameter.symbol)
} }
} }
) )
@@ -12,10 +12,13 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.addDeclaration import org.jetbrains.kotlin.fir.declarations.addDeclaration
import org.jetbrains.kotlin.fir.declarations.impl.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirModifiableRegularClass
import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.expressions.impl.* import org.jetbrains.kotlin.fir.expressions.impl.*
import org.jetbrains.kotlin.fir.references.impl.FirImplicitThisReference import org.jetbrains.kotlin.fir.references.impl.FirImplicitThisReference
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
@@ -60,7 +63,7 @@ fun List<Pair<KtParameter?, FirProperty>>.generateComponentFunctions(
dispatchReceiver = FirThisReceiverExpressionImpl(null, FirImplicitThisReference(firClass.symbol)).apply { dispatchReceiver = FirThisReceiverExpressionImpl(null, FirImplicitThisReference(firClass.symbol)).apply {
typeRef = firPrimaryConstructor.returnTypeRef typeRef = firPrimaryConstructor.returnTypeRef
} }
calleeReference = FirResolvedCallableReferenceImpl( calleeReference = FirResolvedNamedReferenceImpl(
ktParameter, ktParameter,
parameterName, firProperty.symbol parameterName, firProperty.symbol
) )
@@ -113,7 +116,7 @@ fun List<Pair<KtParameter?, FirProperty>>.generateCopyFunction(
dispatchReceiver = FirThisReceiverExpressionImpl(null, FirImplicitThisReference(firClass.symbol)).apply { dispatchReceiver = FirThisReceiverExpressionImpl(null, FirImplicitThisReference(firClass.symbol)).apply {
typeRef = firPrimaryConstructor.returnTypeRef typeRef = firPrimaryConstructor.returnTypeRef
} }
calleeReference = FirResolvedCallableReferenceImpl(ktParameter, name, firProperty.symbol) calleeReference = FirResolvedNamedReferenceImpl(ktParameter, name, firProperty.symbol)
}, },
isCrossinline = false, isNoinline = false, isVararg = false isCrossinline = false, isNoinline = false, isVararg = false
) )
@@ -264,7 +264,7 @@ class RawFirBuilder(session: FirSession, val stubMode: Boolean) : BaseFirBuilder
null, null,
nameAsSafeName, nameAsSafeName,
FirQualifiedAccessExpressionImpl(this).apply { FirQualifiedAccessExpressionImpl(this).apply {
calleeReference = FirPropertyFromParameterCallableReference( calleeReference = FirPropertyFromParameterResolvedNamedReference(
this@toFirProperty, nameAsSafeName, firParameter.symbol this@toFirProperty, nameAsSafeName, firParameter.symbol
) )
}, },
@@ -11,10 +11,10 @@ import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedQualifierImpl import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedQualifierImpl
import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.impl.FirBackingFieldReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirBackingFieldReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.*
import org.jetbrains.kotlin.fir.resolve.calls.* import org.jetbrains.kotlin.fir.resolve.calls.*
@@ -191,7 +191,7 @@ class FirCallResolver(
} }
val referencedSymbol = when (nameReference) { val referencedSymbol = when (nameReference) {
is FirResolvedCallableReference -> nameReference.resolvedSymbol is FirResolvedNamedReference -> nameReference.resolvedSymbol
is FirNamedReferenceWithCandidate -> nameReference.candidateSymbol is FirNamedReferenceWithCandidate -> nameReference.candidateSymbol
else -> null else -> null
} }
@@ -367,7 +367,7 @@ class FirCallResolver(
coneSymbol !is FirPropertySymbol || coneSymbol !is FirPropertySymbol ||
(coneSymbol.phasedFir(session) as FirMemberDeclaration).typeParameters.isEmpty() (coneSymbol.phasedFir(session) as FirMemberDeclaration).typeParameters.isEmpty()
) -> ) ->
FirResolvedCallableReferenceImpl(psi, name, coneSymbol) FirResolvedNamedReferenceImpl(psi, name, coneSymbol)
else -> FirNamedReferenceWithCandidate(psi, name, candidate) else -> FirNamedReferenceWithCandidate(psi, name, candidate)
} }
} }
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.impl.* import org.jetbrains.kotlin.fir.expressions.impl.*
import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirErrorNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.resolve.constructType import org.jetbrains.kotlin.fir.resolve.constructType
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
@@ -133,7 +133,7 @@ abstract class AbstractAnnotationDeserializer(
val entryLookupTag = ConeClassLikeLookupTagImpl(entryClassId) val entryLookupTag = ConeClassLikeLookupTagImpl(entryClassId)
val entrySymbol = entryLookupTag.toSymbol(this@AbstractAnnotationDeserializer.session) val entrySymbol = entryLookupTag.toSymbol(this@AbstractAnnotationDeserializer.session)
this.calleeReference = entrySymbol?.let { this.calleeReference = entrySymbol?.let {
FirResolvedCallableReferenceImpl(null, entryName, it) FirResolvedNamedReferenceImpl(null, entryName, it)
} ?: FirErrorNamedReferenceImpl( } ?: FirErrorNamedReferenceImpl(
null, null,
errorReason = "Strange deserialized enum value: $classId.$entryName" errorReason = "Strange deserialized enum value: $classId.$entryName"
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirResolvable import org.jetbrains.kotlin.fir.expressions.FirResolvable
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate
@@ -290,7 +290,7 @@ fun <T : FirResolvable> BodyResolveComponents.typeFromCallee(access: T): FirReso
is FirNamedReferenceWithCandidate -> { is FirNamedReferenceWithCandidate -> {
typeFromSymbol(newCallee.candidateSymbol, makeNullable) typeFromSymbol(newCallee.candidateSymbol, makeNullable)
} }
is FirResolvedCallableReference -> { is FirResolvedNamedReference -> {
typeFromSymbol(newCallee.resolvedSymbol, makeNullable) typeFromSymbol(newCallee.resolvedSymbol, makeNullable)
} }
is FirThisReference -> { is FirThisReference -> {
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
import org.jetbrains.kotlin.fir.resolve.ImplicitReceiverStackImpl import org.jetbrains.kotlin.fir.resolve.ImplicitReceiverStackImpl
@@ -486,12 +486,12 @@ class FirDataFlowAnalyzer(components: FirAbstractBodyResolveTransformer.BodyReso
if (it is FirExplicitThisReference) { if (it is FirExplicitThisReference) {
it.boundSymbol it.boundSymbol
} else { } else {
(it as? FirResolvedCallableReference)?.resolvedSymbol (it as? FirResolvedNamedReference)?.resolvedSymbol
} }
} }
private fun FirFunctionCall.isBooleanNot(): Boolean { private fun FirFunctionCall.isBooleanNot(): Boolean {
val symbol = calleeReference.safeAs<FirResolvedCallableReference>()?.resolvedSymbol as? FirNamedFunctionSymbol ?: return false val symbol = calleeReference.safeAs<FirResolvedNamedReference>()?.resolvedSymbol as? FirNamedFunctionSymbol ?: return false
return symbol.callableId == KOTLIN_BOOLEAN_NOT return symbol.callableId == KOTLIN_BOOLEAN_NOT
} }
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.copy import org.jetbrains.kotlin.fir.copy
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.references.impl.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedNamedReferenceImpl
import org.jetbrains.kotlin.fir.references.impl.FirResolvedRealCallableReferenceImpl import org.jetbrains.kotlin.fir.references.impl.FirResolvedRealCallableReferenceImpl
import org.jetbrains.kotlin.fir.resolve.calls.Candidate import org.jetbrains.kotlin.fir.resolve.calls.Candidate
import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate
@@ -52,7 +52,7 @@ class FirCallCompletionResultsWriterTransformer(
return qualifiedAccessExpression.transformCalleeReference( return qualifiedAccessExpression.transformCalleeReference(
StoreCalleeReference, StoreCalleeReference,
FirResolvedCallableReferenceImpl( FirResolvedNamedReferenceImpl(
calleeReference.psi, calleeReference.psi,
calleeReference.name, calleeReference.name,
calleeReference.candidateSymbol calleeReference.candidateSymbol
@@ -96,7 +96,7 @@ class FirCallCompletionResultsWriterTransformer(
?: return variableAssignment.compose() ?: return variableAssignment.compose()
return variableAssignment.transformCalleeReference( return variableAssignment.transformCalleeReference(
StoreCalleeReference, StoreCalleeReference,
FirResolvedCallableReferenceImpl( FirResolvedNamedReferenceImpl(
calleeReference.psi, calleeReference.psi,
calleeReference.name, calleeReference.name,
calleeReference.candidateSymbol calleeReference.candidateSymbol
@@ -148,7 +148,7 @@ class FirCallCompletionResultsWriterTransformer(
return functionCall.copy( return functionCall.copy(
resultType = resultType, resultType = resultType,
typeArguments = typeArguments, typeArguments = typeArguments,
calleeReference = FirResolvedCallableReferenceImpl( calleeReference = FirResolvedNamedReferenceImpl(
calleeReference.psi, calleeReference.psi,
calleeReference.name, calleeReference.name,
calleeReference.candidateSymbol calleeReference.candidateSymbol
@@ -214,7 +214,7 @@ class FirCallCompletionResultsWriterTransformer(
return whenExpression.copy( return whenExpression.copy(
resultType = resultType, resultType = resultType,
calleeReference = FirResolvedCallableReferenceImpl( calleeReference = FirResolvedNamedReferenceImpl(
calleeReference.psi, calleeReference.psi,
calleeReference.name, calleeReference.name,
calleeReference.candidateSymbol calleeReference.candidateSymbol
@@ -240,7 +240,7 @@ class FirCallCompletionResultsWriterTransformer(
return tryExpression.copy( return tryExpression.copy(
resultType = resultType, resultType = resultType,
calleeReference = FirResolvedCallableReferenceImpl( calleeReference = FirResolvedNamedReferenceImpl(
calleeReference.psi, calleeReference.psi,
calleeReference.name, calleeReference.name,
calleeReference.candidateSymbol calleeReference.candidateSymbol
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirWrappedArgumentExpression import org.jetbrains.kotlin.fir.expressions.FirWrappedArgumentExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
@@ -76,21 +76,21 @@ internal object StoreNameReference : FirDefaultTransformer<FirNamedReference>()
} }
} }
internal object StoreCalleeReference : FirTransformer<FirResolvedCallableReference>() { internal object StoreCalleeReference : FirTransformer<FirResolvedNamedReference>() {
override fun <E : FirElement> transformElement(element: E, data: FirResolvedCallableReference): CompositeTransformResult<E> { override fun <E : FirElement> transformElement(element: E, data: FirResolvedNamedReference): CompositeTransformResult<E> {
return element.compose() return element.compose()
} }
override fun transformNamedReference( override fun transformNamedReference(
namedReference: FirNamedReference, namedReference: FirNamedReference,
data: FirResolvedCallableReference data: FirResolvedNamedReference
): CompositeTransformResult<FirNamedReference> { ): CompositeTransformResult<FirNamedReference> {
return data.compose() return data.compose()
} }
override fun transformResolvedCallableReference( override fun transformResolvedNamedReference(
resolvedCallableReference: FirResolvedCallableReference, resolvedNamedReference: FirResolvedNamedReference,
data: FirResolvedCallableReference data: FirResolvedNamedReference
): CompositeTransformResult<FirNamedReference> { ): CompositeTransformResult<FirNamedReference> {
return data.compose() return data.compose()
} }
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.FirTargetElement
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyExpressionBlock import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyExpressionBlock
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.transformers.FirSyntheticCallGenerator import org.jetbrains.kotlin.fir.resolve.transformers.FirSyntheticCallGenerator
import org.jetbrains.kotlin.fir.resolve.transformers.FirWhenExhaustivenessTransformer import org.jetbrains.kotlin.fir.resolve.transformers.FirWhenExhaustivenessTransformer
import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype
@@ -47,7 +47,7 @@ class FirControlFlowStatementsResolveTransformer(transformer: FirBodyResolveTran
// ------------------------------- When expressions ------------------------------- // ------------------------------- When expressions -------------------------------
override fun transformWhenExpression(whenExpression: FirWhenExpression, data: Any?): CompositeTransformResult<FirStatement> { override fun transformWhenExpression(whenExpression: FirWhenExpression, data: Any?): CompositeTransformResult<FirStatement> {
if (whenExpression.calleeReference is FirResolvedCallableReference && whenExpression.resultType !is FirImplicitTypeRef) { if (whenExpression.calleeReference is FirResolvedNamedReference && whenExpression.resultType !is FirImplicitTypeRef) {
return whenExpression.compose() return whenExpression.compose()
} }
dataFlowAnalyzer.enterWhenExpression(whenExpression) dataFlowAnalyzer.enterWhenExpression(whenExpression)
@@ -121,7 +121,7 @@ class FirControlFlowStatementsResolveTransformer(transformer: FirBodyResolveTran
// ------------------------------- Try/catch expressions ------------------------------- // ------------------------------- Try/catch expressions -------------------------------
override fun transformTryExpression(tryExpression: FirTryExpression, data: Any?): CompositeTransformResult<FirStatement> { override fun transformTryExpression(tryExpression: FirTryExpression, data: Any?): CompositeTransformResult<FirStatement> {
if (tryExpression.calleeReference is FirResolvedCallableReference && tryExpression.resultType !is FirImplicitTypeRef) { if (tryExpression.calleeReference is FirResolvedNamedReference && tryExpression.resultType !is FirImplicitTypeRef) {
return tryExpression.compose() return tryExpression.compose()
} }
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastImpl import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastImpl
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
@@ -87,7 +87,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
qualifiedAccessExpression.resultType = delegateFieldSymbol.delegate.typeRef qualifiedAccessExpression.resultType = delegateFieldSymbol.delegate.typeRef
qualifiedAccessExpression qualifiedAccessExpression
} }
is FirResolvedCallableReference -> { is FirResolvedNamedReference -> {
if (qualifiedAccessExpression.typeRef !is FirResolvedTypeRef) { if (qualifiedAccessExpression.typeRef !is FirResolvedTypeRef) {
storeTypeFromCallee(qualifiedAccessExpression) storeTypeFromCallee(qualifiedAccessExpression)
} }
@@ -126,7 +126,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
override fun transformFunctionCall(functionCall: FirFunctionCall, data: Any?): CompositeTransformResult<FirStatement> { override fun transformFunctionCall(functionCall: FirFunctionCall, data: Any?): CompositeTransformResult<FirStatement> {
dataFlowAnalyzer.enterFunctionCall(functionCall) dataFlowAnalyzer.enterFunctionCall(functionCall)
if (functionCall.calleeReference is FirResolvedCallableReference && functionCall.resultType is FirImplicitTypeRef) { if (functionCall.calleeReference is FirResolvedNamedReference && functionCall.resultType is FirImplicitTypeRef) {
storeTypeFromCallee(functionCall) storeTypeFromCallee(functionCall)
} }
if (functionCall.calleeReference !is FirSimpleNamedReference) return functionCall.compose() if (functionCall.calleeReference !is FirSimpleNamedReference) return functionCall.compose()
@@ -807,22 +807,22 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print("|") print("|")
} }
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) { override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {
print("R|") print("R|")
val isFakeOverride = (resolvedCallableReference.resolvedSymbol as? FirNamedFunctionSymbol)?.isFakeOverride == true val isFakeOverride = (resolvedNamedReference.resolvedSymbol as? FirNamedFunctionSymbol)?.isFakeOverride == true
if (isFakeOverride) { if (isFakeOverride) {
print("FakeOverride<") print("FakeOverride<")
} }
val symbol = resolvedCallableReference.resolvedSymbol val symbol = resolvedNamedReference.resolvedSymbol
print(symbol.render()) print(symbol.render())
if (resolvedCallableReference is FirResolvedRealCallableReference) { if (resolvedNamedReference is FirResolvedRealCallableReference) {
if (resolvedCallableReference.inferredTypeArguments.isNotEmpty()) { if (resolvedNamedReference.inferredTypeArguments.isNotEmpty()) {
print("<") print("<")
resolvedCallableReference.inferredTypeArguments.renderTypesSeparated() resolvedNamedReference.inferredTypeArguments.renderTypesSeparated()
print(">") print(">")
} }
@@ -845,7 +845,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
} }
override fun visitResolvedRealCallableReference(resolvedRealCallableReference: FirResolvedRealCallableReference) { override fun visitResolvedRealCallableReference(resolvedRealCallableReference: FirResolvedRealCallableReference) {
visitResolvedCallableReference(resolvedRealCallableReference) visitResolvedRealCallableReference(resolvedRealCallableReference)
} }
override fun visitThisReference(thisReference: FirThisReference) { override fun visitThisReference(thisReference: FirThisReference) {
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.expressions.impl.FirConstExpressionImpl import org.jetbrains.kotlin.fir.expressions.impl.FirConstExpressionImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirErrorExpressionImpl import org.jetbrains.kotlin.fir.expressions.impl.FirErrorExpressionImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirErrorLoop import org.jetbrains.kotlin.fir.expressions.impl.FirErrorLoop
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.types.ConeClassErrorType import org.jetbrains.kotlin.fir.types.ConeClassErrorType
import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeClassLikeType
@@ -28,8 +28,8 @@ fun <T> FirConstExpressionImpl(psi: PsiElement?, kind: IrConstKind<T>, value: T?
inline val FirTypeOperatorCall.argument: FirExpression get() = arguments.first() inline val FirTypeOperatorCall.argument: FirExpression get() = arguments.first()
fun FirExpression.toResolvedCallableReference(): FirResolvedCallableReference? { fun FirExpression.toResolvedCallableReference(): FirResolvedNamedReference? {
return (this as? FirQualifiedAccess)?.calleeReference as? FirResolvedCallableReference return (this as? FirQualifiedAccess)?.calleeReference as? FirResolvedNamedReference
} }
fun FirExpression.toResolvedCallableSymbol(): FirCallableSymbol<*>? { fun FirExpression.toResolvedCallableSymbol(): FirCallableSymbol<*>? {
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirBackingFieldReference : FirResolvedCallableReference() { abstract class FirBackingFieldReference : FirResolvedNamedReference() {
abstract override val psi: PsiElement? abstract override val psi: PsiElement?
abstract override val name: Name abstract override val name: Name
abstract override val candidateSymbol: AbstractFirBasedSymbol<*>? abstract override val candidateSymbol: AbstractFirBasedSymbol<*>?
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirDelegateFieldReference : FirResolvedCallableReference() { abstract class FirDelegateFieldReference : FirResolvedNamedReference() {
abstract override val psi: PsiElement? abstract override val psi: PsiElement?
abstract override val name: Name abstract override val name: Name
abstract override val candidateSymbol: AbstractFirBasedSymbol<*>? abstract override val candidateSymbol: AbstractFirBasedSymbol<*>?
@@ -15,11 +15,11 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirResolvedCallableReference : FirNamedReference() { abstract class FirResolvedNamedReference : FirNamedReference() {
abstract override val psi: PsiElement? abstract override val psi: PsiElement?
abstract override val name: Name abstract override val name: Name
abstract override val candidateSymbol: AbstractFirBasedSymbol<*>? abstract override val candidateSymbol: AbstractFirBasedSymbol<*>?
abstract val resolvedSymbol: AbstractFirBasedSymbol<*> abstract val resolvedSymbol: AbstractFirBasedSymbol<*>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedCallableReference(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedNamedReference(this, data)
} }
@@ -8,15 +8,15 @@ package org.jetbrains.kotlin.fir.references
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
/* /*
* This file was generated automatically * This file was generated automatically
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirResolvedRealCallableReference : FirResolvedCallableReference() { abstract class FirResolvedRealCallableReference : FirResolvedNamedReference() {
abstract override val psi: PsiElement? abstract override val psi: PsiElement?
abstract override val name: Name abstract override val name: Name
abstract override val candidateSymbol: AbstractFirBasedSymbol<*>? abstract override val candidateSymbol: AbstractFirBasedSymbol<*>?
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.references.impl package org.jetbrains.kotlin.fir.references.impl
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -16,16 +16,16 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
class FirPropertyFromParameterCallableReference( class FirPropertyFromParameterResolvedNamedReference(
override val psi: PsiElement?, override val psi: PsiElement?,
override val name: Name, override val name: Name,
override val resolvedSymbol: AbstractFirBasedSymbol<*> override val resolvedSymbol: AbstractFirBasedSymbol<*>
) : FirResolvedCallableReference() { ) : FirResolvedNamedReference() {
override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {} override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyFromParameterCallableReference { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyFromParameterResolvedNamedReference {
return this return this
} }
} }
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.references.impl package org.jetbrains.kotlin.fir.references.impl
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -16,16 +16,16 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
class FirResolvedCallableReferenceImpl( class FirResolvedNamedReferenceImpl(
override val psi: PsiElement?, override val psi: PsiElement?,
override val name: Name, override val name: Name,
override val resolvedSymbol: AbstractFirBasedSymbol<*> override val resolvedSymbol: AbstractFirBasedSymbol<*>
) : FirResolvedCallableReference() { ) : FirResolvedNamedReference() {
override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {} override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedCallableReferenceImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedNamedReferenceImpl {
return this return this
} }
} }
@@ -9,9 +9,8 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
/* /*
* This file was generated automatically * This file was generated automatically
@@ -100,7 +100,7 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference
@@ -500,8 +500,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformElement(controlFlowGraphReference, data) return transformElement(controlFlowGraphReference, data)
} }
open fun transformResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference, data: D): CompositeTransformResult<FirReference> { open fun transformResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference, data: D): CompositeTransformResult<FirReference> {
return transformElement(resolvedCallableReference, data) return transformElement(resolvedNamedReference, data)
} }
open fun transformDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): CompositeTransformResult<FirReference> { open fun transformDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): CompositeTransformResult<FirReference> {
@@ -932,8 +932,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformControlFlowGraphReference(controlFlowGraphReference, data) return transformControlFlowGraphReference(controlFlowGraphReference, data)
} }
final override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference, data: D): CompositeTransformResult<FirReference> { final override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference, data: D): CompositeTransformResult<FirReference> {
return transformResolvedCallableReference(resolvedCallableReference, data) return transformResolvedNamedReference(resolvedNamedReference, data)
} }
final override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): CompositeTransformResult<FirReference> { final override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): CompositeTransformResult<FirReference> {
@@ -100,7 +100,7 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference
@@ -310,7 +310,7 @@ abstract class FirVisitor<out R, in D> {
open fun visitControlFlowGraphReference(controlFlowGraphReference: FirControlFlowGraphReference, data: D): R = visitElement(controlFlowGraphReference, data) open fun visitControlFlowGraphReference(controlFlowGraphReference: FirControlFlowGraphReference, data: D): R = visitElement(controlFlowGraphReference, data)
open fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference, data: D): R = visitElement(resolvedCallableReference, data) open fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference, data: D): R = visitElement(resolvedNamedReference, data)
open fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): R = visitElement(delegateFieldReference, data) open fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: D): R = visitElement(delegateFieldReference, data)
@@ -100,7 +100,7 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.references.FirSuperReference
import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference import org.jetbrains.kotlin.fir.references.FirResolvedRealCallableReference
@@ -498,8 +498,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(controlFlowGraphReference) visitElement(controlFlowGraphReference)
} }
open fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) { open fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {
visitElement(resolvedCallableReference) visitElement(resolvedNamedReference)
} }
open fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference) { open fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference) {
@@ -930,8 +930,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitControlFlowGraphReference(controlFlowGraphReference) visitControlFlowGraphReference(controlFlowGraphReference)
} }
final override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference, data: Nothing?) { final override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference, data: Nothing?) {
visitResolvedCallableReference(resolvedCallableReference) visitResolvedNamedReference(resolvedNamedReference)
} }
final override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: Nothing?) { final override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference, data: Nothing?) {
@@ -117,11 +117,11 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val thisReference = element("ThisReference", Reference, reference) val thisReference = element("ThisReference", Reference, reference)
val controlFlowGraphReference = element("ControlFlowGraphReference", Reference, reference) val controlFlowGraphReference = element("ControlFlowGraphReference", Reference, reference)
val resolvedCallableReference = element("ResolvedCallableReference", Reference, namedReference) val resolvedNamedReference = element("ResolvedNamedReference", Reference, namedReference)
val delegateFieldReference = element("DelegateFieldReference", Reference, resolvedCallableReference) val delegateFieldReference = element("DelegateFieldReference", Reference, resolvedNamedReference)
val backingFieldReference = element("BackingFieldReference", Reference, resolvedCallableReference) val backingFieldReference = element("BackingFieldReference", Reference, resolvedNamedReference)
val resolvedRealCallableReference = element("ResolvedRealCallableReference", Reference, resolvedCallableReference) val resolvedRealCallableReference = element("ResolvedRealCallableReference", Reference, resolvedNamedReference)
val resolvedTypeRef = element("ResolvedTypeRef", TypeRef, typeRef) val resolvedTypeRef = element("ResolvedTypeRef", TypeRef, typeRef)
val errorTypeRef = element("ErrorTypeRef", TypeRef, resolvedTypeRef) val errorTypeRef = element("ErrorTypeRef", TypeRef, resolvedTypeRef)
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.fir.tree.generator
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeImplementationConfigurator import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeImplementationConfigurator
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation import org.jetbrains.kotlin.fir.tree.generator.model.Implementation
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.* import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.Object
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.OpenClass
object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() { object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() {
private lateinit var abstractAnnotatedElement: Implementation private lateinit var abstractAnnotatedElement: Implementation
@@ -425,11 +426,11 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
} }
} }
impl(resolvedCallableReference) { impl(resolvedNamedReference) {
defaultNull("candidateSymbol", withGetter = true) defaultNull("candidateSymbol", withGetter = true)
} }
impl(resolvedCallableReference, "FirPropertyFromParameterCallableReference") { impl(resolvedNamedReference, "FirPropertyFromParameterResolvedNamedReference") {
defaultNull("candidateSymbol", withGetter = true) defaultNull("candidateSymbol", withGetter = true)
} }
@@ -448,7 +448,7 @@ object NodeConfigurator : AbstractFieldConfigurator() {
+field("candidateSymbol", abstractFirBasedSymbolType, "*", nullable = true) +field("candidateSymbol", abstractFirBasedSymbolType, "*", nullable = true)
} }
resolvedCallableReference.configure { resolvedNamedReference.configure {
+field("resolvedSymbol", abstractFirBasedSymbolType, "*") +field("resolvedSymbol", abstractFirBasedSymbolType, "*")
} }
@@ -9,11 +9,11 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.KtNodeTypes
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.directExpansionType import org.jetbrains.kotlin.fir.resolve.directExpansionType
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
@@ -198,7 +198,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
override fun visitReferenceExpression(expression: KtReferenceExpression) { override fun visitReferenceExpression(expression: KtReferenceExpression) {
if (expression is KtOperationReferenceExpression) return if (expression is KtOperationReferenceExpression) return
expression.firstOfTypeWithLocalReplace<FirResolvedCallableReference> { this.name.asString() } expression.firstOfTypeWithLocalReplace<FirResolvedNamedReference> { this.name.asString() }
?: expression.firstOfTypeWithRender<FirResolvedQualifier>() ?: expression.firstOfTypeWithRender<FirResolvedQualifier>()
?: expression.firstOfTypeWithRender<FirElement>() //fallback for errors ?: expression.firstOfTypeWithRender<FirElement>() //fallback for errors
super.visitReferenceExpression(expression) super.visitReferenceExpression(expression)
@@ -363,8 +363,8 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
visitElement(namedReference, data) visitElement(namedReference, data)
} }
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference, data: StringBuilder) { override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference, data: StringBuilder) {
val symbol = resolvedCallableReference.resolvedSymbol val symbol = resolvedNamedReference.resolvedSymbol
data.append(renderSymbol(symbol)) data.append(renderSymbol(symbol))
} }
@@ -399,7 +399,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
override fun visitFunctionCall(functionCall: FirFunctionCall, data: StringBuilder) { override fun visitFunctionCall(functionCall: FirFunctionCall, data: StringBuilder) {
when (val callee = functionCall.calleeReference) { when (val callee = functionCall.calleeReference) {
is FirResolvedCallableReference -> { is FirResolvedNamedReference -> {
if (callee.resolvedSymbol is FirConstructorSymbol) { if (callee.resolvedSymbol is FirConstructorSymbol) {
data.append(renderSymbol(callee.resolvedSymbol)) data.append(renderSymbol(callee.resolvedSymbol))
visitArguments(functionCall.arguments, data) visitArguments(functionCall.arguments, data)
@@ -6,9 +6,10 @@
package org.jetbrains.kotlin.idea.fir package org.jetbrains.kotlin.idea.fir
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.references.*
import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.resolve.FirProvider
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformer import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformer
import org.jetbrains.kotlin.fir.resolve.transformers.runResolve import org.jetbrains.kotlin.fir.resolve.transformers.runResolve
@@ -176,7 +177,7 @@ fun KtElement.getOrBuildFir(
override fun visitNamedReference(namedReference: FirNamedReference) {} override fun visitNamedReference(namedReference: FirNamedReference) {}
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) {} override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {}
override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference) {} override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference) {}