Use FirNamedFunctionSymbol in FirSimpleFunction & its inheritors

This commit is contained in:
Mikhail Glukhikh
2020-12-02 17:31:17 +03:00
committed by TeamCityServer
parent 15021f30ff
commit 91834ccf46
15 changed files with 20 additions and 26 deletions
@@ -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.processOverriddenFunctions
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.ConeTypeCheckerContext
@@ -30,7 +29,6 @@ fun FirSimpleFunction.lowestVisibilityAmongOverrides(
session: FirSession,
scopeSession: ScopeSession
): Visibility {
val symbol = symbol as? FirNamedFunctionSymbol ?: return visibility
val firTypeScope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
var visibility = visibility
@@ -117,7 +117,7 @@ private fun FirTypeAliasSymbol.findSAMConstructorForTypeAlias(
if (type.typeArguments.isEmpty()) return samConstructorForClass
val namedSymbol = samConstructorForClass.symbol as? FirNamedFunctionSymbol ?: return null
val namedSymbol = samConstructorForClass.symbol
val substitutor = prepareSubstitutorForTypeAliasConstructors(
type,
@@ -75,12 +75,10 @@ class FirStatusResolver(
buildList<FirCallableMemberDeclaration<*>> {
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
val symbol = function.symbol
if (symbol is FirNamedFunctionSymbol) {
scope.processFunctionsByName(function.name) {}
scope.processDirectOverriddenFunctionsWithBaseScope(symbol) { overriddenSymbol, _ ->
this += overriddenSymbol.fir
ProcessorAction.NEXT
}
scope.processFunctionsByName(function.name) {}
scope.processDirectOverriddenFunctionsWithBaseScope(symbol) { overriddenSymbol, _ ->
this += overriddenSymbol.fir
ProcessorAction.NEXT
}
}.mapNotNull {
it.status as? FirResolvedDeclarationStatus
@@ -64,7 +64,7 @@ class FirDelegatedMemberScope(
newModality = Modality.OPEN,
).apply {
delegatedWrapperData = DelegatedWrapperData(functionSymbol.fir, containingClass.symbol.toLookupTag(), delegateField)
}.symbol as FirNamedFunctionSymbol
}.symbol
}
processor(delegatedSymbol)
}
@@ -54,7 +54,7 @@ object FirFakeOverrideGenerator {
}
private fun createSubstitutionOverrideFunction(
fakeOverrideSymbol: FirFunctionSymbol<FirSimpleFunction>,
fakeOverrideSymbol: FirNamedFunctionSymbol,
session: FirSession,
baseFunction: FirSimpleFunction,
newDispatchReceiverType: ConeKotlinType?,
@@ -85,7 +85,7 @@ object FirFakeOverrideGenerator {
}
fun createCopyForFirFunction(
newSymbol: FirFunctionSymbol<FirSimpleFunction>,
newSymbol: FirNamedFunctionSymbol,
baseFunction: FirSimpleFunction,
session: FirSession,
origin: FirDeclarationOrigin,
@@ -34,7 +34,7 @@ class FirLocalScope private constructor(
fun storeFunction(function: FirSimpleFunction): FirLocalScope {
return FirLocalScope(
properties, functions.put(function.name, function.symbol as FirNamedFunctionSymbol), classes
properties, functions.put(function.name, function.symbol), classes
)
}