Use FirNamedFunctionSymbol in FirSimpleFunction & its inheritors
This commit is contained in:
committed by
TeamCityServer
parent
15021f30ff
commit
91834ccf46
@@ -200,7 +200,6 @@ fun FirSimpleFunction.overriddenFunctions(
|
|||||||
containingClass: FirClass<*>,
|
containingClass: FirClass<*>,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
): List<FirFunctionSymbol<*>> {
|
): List<FirFunctionSymbol<*>> {
|
||||||
val symbol = symbol as? FirNamedFunctionSymbol ?: return emptyList()
|
|
||||||
val firTypeScope = containingClass.unsubstitutedScope(
|
val firTypeScope = containingClass.unsubstitutedScope(
|
||||||
context.sessionHolder.session,
|
context.sessionHolder.session,
|
||||||
context.sessionHolder.scopeSession,
|
context.sessionHolder.scopeSession,
|
||||||
|
|||||||
+1
-1
@@ -51,7 +51,7 @@ object FirTypeMismatchOnOverrideChecker : FirRegularClassChecker() {
|
|||||||
private fun FirTypeScope.retrieveDirectOverriddenOf(function: FirSimpleFunction): List<FirFunctionSymbol<*>> {
|
private fun FirTypeScope.retrieveDirectOverriddenOf(function: FirSimpleFunction): List<FirFunctionSymbol<*>> {
|
||||||
processFunctionsByName(function.name) {}
|
processFunctionsByName(function.name) {}
|
||||||
|
|
||||||
return getDirectOverriddenFunctions(function.symbol as FirNamedFunctionSymbol)
|
return getDirectOverriddenFunctions(function.symbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirTypeScope.retrieveDirectOverriddenOf(property: FirProperty): List<FirPropertySymbol> {
|
private fun FirTypeScope.retrieveDirectOverriddenOf(property: FirProperty): List<FirPropertySymbol> {
|
||||||
|
|||||||
+1
-1
@@ -233,7 +233,7 @@ class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: Kot
|
|||||||
val functionClass = getClassLikeSymbolByFqName(classId(arity)) ?: return null
|
val functionClass = getClassLikeSymbolByFqName(classId(arity)) ?: return null
|
||||||
val invoke =
|
val invoke =
|
||||||
functionClass.fir.declarations.find { it is FirSimpleFunction && it.name == OperatorNameConventions.INVOKE } ?: return null
|
functionClass.fir.declarations.find { it is FirSimpleFunction && it.name == OperatorNameConventions.INVOKE } ?: return null
|
||||||
return (invoke as FirSimpleFunction).symbol as? FirNamedFunctionSymbol
|
return (invoke as FirSimpleFunction).symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FunctionClassKind.classId(arity: Int) = ClassId(packageFqName, numberedClassName(arity))
|
private fun FunctionClassKind.classId(arity: Int) = ClassId(packageFqName, numberedClassName(arity))
|
||||||
|
|||||||
@@ -250,7 +250,6 @@ internal fun FirSimpleFunction.generateOverriddenFunctionSymbols(
|
|||||||
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true)
|
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true)
|
||||||
scope.processFunctionsByName(name) {}
|
scope.processFunctionsByName(name) {}
|
||||||
val overriddenSet = mutableSetOf<IrSimpleFunctionSymbol>()
|
val overriddenSet = mutableSetOf<IrSimpleFunctionSymbol>()
|
||||||
val symbol = symbol as? FirNamedFunctionSymbol ?: return emptyList()
|
|
||||||
scope.processDirectlyOverriddenFunctions(symbol) {
|
scope.processDirectlyOverriddenFunctions(symbol) {
|
||||||
if (it.fir.visibility == Visibilities.Private) {
|
if (it.fir.visibility == Visibilities.Private) {
|
||||||
return@processDirectlyOverriddenFunctions ProcessorAction.NEXT
|
return@processDirectlyOverriddenFunctions ProcessorAction.NEXT
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.jvm.FirJavaTypeRef
|
import org.jetbrains.kotlin.fir.types.jvm.FirJavaTypeRef
|
||||||
@@ -52,7 +52,7 @@ class FirJavaMethod @FirImplementationDetail constructor(
|
|||||||
name: Name,
|
name: Name,
|
||||||
status: FirDeclarationStatus,
|
status: FirDeclarationStatus,
|
||||||
containerSource: DeserializedContainerSource?,
|
containerSource: DeserializedContainerSource?,
|
||||||
symbol: FirFunctionSymbol<FirSimpleFunction>,
|
symbol: FirNamedFunctionSymbol,
|
||||||
annotations: MutableList<FirAnnotationCall>,
|
annotations: MutableList<FirAnnotationCall>,
|
||||||
dispatchReceiverType: ConeKotlinType?,
|
dispatchReceiverType: ConeKotlinType?,
|
||||||
) : FirSimpleFunctionImpl(
|
) : FirSimpleFunctionImpl(
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.resolve.inference.inferenceComponents
|
|||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions
|
import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions
|
||||||
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeInferenceContext
|
import org.jetbrains.kotlin.fir.types.ConeInferenceContext
|
||||||
import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext
|
import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext
|
||||||
|
|
||||||
@@ -30,7 +29,6 @@ fun FirSimpleFunction.lowestVisibilityAmongOverrides(
|
|||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeSession: ScopeSession
|
scopeSession: ScopeSession
|
||||||
): Visibility {
|
): Visibility {
|
||||||
val symbol = symbol as? FirNamedFunctionSymbol ?: return visibility
|
|
||||||
val firTypeScope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
val firTypeScope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
||||||
var visibility = visibility
|
var visibility = visibility
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -117,7 +117,7 @@ private fun FirTypeAliasSymbol.findSAMConstructorForTypeAlias(
|
|||||||
|
|
||||||
if (type.typeArguments.isEmpty()) return samConstructorForClass
|
if (type.typeArguments.isEmpty()) return samConstructorForClass
|
||||||
|
|
||||||
val namedSymbol = samConstructorForClass.symbol as? FirNamedFunctionSymbol ?: return null
|
val namedSymbol = samConstructorForClass.symbol
|
||||||
|
|
||||||
val substitutor = prepareSubstitutorForTypeAliasConstructors(
|
val substitutor = prepareSubstitutorForTypeAliasConstructors(
|
||||||
type,
|
type,
|
||||||
|
|||||||
+4
-6
@@ -75,12 +75,10 @@ class FirStatusResolver(
|
|||||||
buildList<FirCallableMemberDeclaration<*>> {
|
buildList<FirCallableMemberDeclaration<*>> {
|
||||||
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
||||||
val symbol = function.symbol
|
val symbol = function.symbol
|
||||||
if (symbol is FirNamedFunctionSymbol) {
|
scope.processFunctionsByName(function.name) {}
|
||||||
scope.processFunctionsByName(function.name) {}
|
scope.processDirectOverriddenFunctionsWithBaseScope(symbol) { overriddenSymbol, _ ->
|
||||||
scope.processDirectOverriddenFunctionsWithBaseScope(symbol) { overriddenSymbol, _ ->
|
this += overriddenSymbol.fir
|
||||||
this += overriddenSymbol.fir
|
ProcessorAction.NEXT
|
||||||
ProcessorAction.NEXT
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}.mapNotNull {
|
}.mapNotNull {
|
||||||
it.status as? FirResolvedDeclarationStatus
|
it.status as? FirResolvedDeclarationStatus
|
||||||
|
|||||||
+1
-1
@@ -64,7 +64,7 @@ class FirDelegatedMemberScope(
|
|||||||
newModality = Modality.OPEN,
|
newModality = Modality.OPEN,
|
||||||
).apply {
|
).apply {
|
||||||
delegatedWrapperData = DelegatedWrapperData(functionSymbol.fir, containingClass.symbol.toLookupTag(), delegateField)
|
delegatedWrapperData = DelegatedWrapperData(functionSymbol.fir, containingClass.symbol.toLookupTag(), delegateField)
|
||||||
}.symbol as FirNamedFunctionSymbol
|
}.symbol
|
||||||
}
|
}
|
||||||
processor(delegatedSymbol)
|
processor(delegatedSymbol)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -54,7 +54,7 @@ object FirFakeOverrideGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createSubstitutionOverrideFunction(
|
private fun createSubstitutionOverrideFunction(
|
||||||
fakeOverrideSymbol: FirFunctionSymbol<FirSimpleFunction>,
|
fakeOverrideSymbol: FirNamedFunctionSymbol,
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
baseFunction: FirSimpleFunction,
|
baseFunction: FirSimpleFunction,
|
||||||
newDispatchReceiverType: ConeKotlinType?,
|
newDispatchReceiverType: ConeKotlinType?,
|
||||||
@@ -85,7 +85,7 @@ object FirFakeOverrideGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun createCopyForFirFunction(
|
fun createCopyForFirFunction(
|
||||||
newSymbol: FirFunctionSymbol<FirSimpleFunction>,
|
newSymbol: FirNamedFunctionSymbol,
|
||||||
baseFunction: FirSimpleFunction,
|
baseFunction: FirSimpleFunction,
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
origin: FirDeclarationOrigin,
|
origin: FirDeclarationOrigin,
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class FirLocalScope private constructor(
|
|||||||
|
|
||||||
fun storeFunction(function: FirSimpleFunction): FirLocalScope {
|
fun storeFunction(function: FirSimpleFunction): FirLocalScope {
|
||||||
return FirLocalScope(
|
return FirLocalScope(
|
||||||
properties, functions.put(function.name, function.symbol as FirNamedFunctionSymbol), classes
|
properties, functions.put(function.name, function.symbol), classes
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.contracts.FirContractDescription
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -40,7 +40,7 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimp
|
|||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val contractDescription: FirContractDescription
|
abstract override val contractDescription: FirContractDescription
|
||||||
abstract val name: Name
|
abstract val name: Name
|
||||||
abstract override val symbol: FirFunctionSymbol<FirSimpleFunction>
|
abstract override val symbol: FirNamedFunctionSymbol
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val typeParameters: List<FirTypeParameter>
|
abstract override val typeParameters: List<FirTypeParameter>
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
@@ -54,7 +54,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
|
|||||||
open var dispatchReceiverType: ConeKotlinType? = null
|
open var dispatchReceiverType: ConeKotlinType? = null
|
||||||
open var contractDescription: FirContractDescription = FirEmptyContractDescription
|
open var contractDescription: FirContractDescription = FirEmptyContractDescription
|
||||||
open lateinit var name: Name
|
open lateinit var name: Name
|
||||||
open lateinit var symbol: FirFunctionSymbol<FirSimpleFunction>
|
open lateinit var symbol: FirNamedFunctionSymbol
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -46,7 +46,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
|
|||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override var contractDescription: FirContractDescription,
|
override var contractDescription: FirContractDescription,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val symbol: FirFunctionSymbol<FirSimpleFunction>,
|
override val symbol: FirNamedFunctionSymbol,
|
||||||
override val annotations: MutableList<FirAnnotationCall>,
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
override val typeParameters: MutableList<FirTypeParameter>,
|
override val typeParameters: MutableList<FirTypeParameter>,
|
||||||
) : FirSimpleFunction() {
|
) : FirSimpleFunction() {
|
||||||
|
|||||||
+1
-1
@@ -299,7 +299,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
parentArg(function, "F", simpleFunction)
|
parentArg(function, "F", simpleFunction)
|
||||||
parentArg(callableMemberDeclaration, "F", simpleFunction)
|
parentArg(callableMemberDeclaration, "F", simpleFunction)
|
||||||
+name
|
+name
|
||||||
+symbol("FirFunctionSymbol<FirSimpleFunction>")
|
+symbol("FirNamedFunctionSymbol")
|
||||||
+annotations
|
+annotations
|
||||||
+typeParameters
|
+typeParameters
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user