[FIR] Rename FirDeclarationOrigin.FakeOverride to SubstitutionOverride

This commit is contained in:
Dmitriy Novozhilov
2020-10-15 14:15:15 +03:00
parent 739ebf772c
commit e75f218f87
7 changed files with 15 additions and 22 deletions
@@ -234,7 +234,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors(
buildConstructor {
source = this@factory.source
this.session = session
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = this@factory.returnTypeRef.withReplacedConeType(newReturnType)
receiverTypeRef = this@factory.receiverTypeRef
status = this@factory.status
@@ -249,7 +249,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors(
source = valueParameter.source
this.session = session
resolvePhase = valueParameter.resolvePhase
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newParameterType)
name = valueParameter.name
symbol = FirVariableSymbol(valueParameter.symbol.callableId)
@@ -219,7 +219,7 @@ private class ReturnTypeCalculatorWithJump(
return result
}
runIf(declaration.origin == FirDeclarationOrigin.FakeOverride) {
runIf(declaration.origin == FirDeclarationOrigin.SubstitutionOverride) {
val possiblyFirFakeOverrideSymbol = declaration.symbol as PossiblyFirFakeOverrideSymbol<*, *>
val overriddenDeclaration = possiblyFirFakeOverrideSymbol.overriddenSymbol?.fir as FirTypedDeclaration? ?: return@runIf
tryCalculateReturnType(overriddenDeclaration)
@@ -73,7 +73,7 @@ abstract class AbstractFirOverrideScope(
source = firSimpleFunction.source
session = firSimpleFunction.session
resolvePhase = firSimpleFunction.resolvePhase
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = firSimpleFunction.returnTypeRef
receiverTypeRef = firSimpleFunction.receiverTypeRef
name = firSimpleFunction.name
@@ -86,7 +86,7 @@ abstract class AbstractFirOverrideScope(
source = parameter.source
session = parameter.session
resolvePhase = parameter.resolvePhase
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = parameter.returnTypeRef
name = parameter.name
symbol = FirVariableSymbol(parameter.symbol.callableId)
@@ -104,7 +104,7 @@ abstract class AbstractFirOverrideScope(
source = firProperty.source
session = firProperty.session
resolvePhase = firProperty.resolvePhase
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = firProperty.returnTypeRef
receiverTypeRef = firProperty.receiverTypeRef
isVar = firProperty.isVar
@@ -68,7 +68,7 @@ object FirFakeOverrideGenerator {
fakeOverrideSymbol,
baseFunction,
session,
FirDeclarationOrigin.FakeOverride,
FirDeclarationOrigin.SubstitutionOverride,
isExpect,
newParameterTypes,
newTypeParameters,
@@ -123,7 +123,7 @@ object FirFakeOverrideGenerator {
return buildConstructor {
source = baseConstructor.source
this.session = session
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
receiverTypeRef = baseConstructor.receiverTypeRef?.withReplacedConeType(null)
status = baseConstructor.status.updatedStatus(isExpect)
symbol = fakeOverrideSymbol
@@ -224,7 +224,7 @@ object FirFakeOverrideGenerator {
newParameterTypes ?: List(baseFunction.valueParameters.size) { null }
) { valueParameter, newType ->
buildValueParameterCopy(valueParameter) {
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType)
symbol = FirVariableSymbol(valueParameter.symbol.callableId)
}
@@ -269,7 +269,7 @@ object FirFakeOverrideGenerator {
return buildProperty {
source = baseProperty.source
this.session = session
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
name = baseProperty.name
isVar = baseProperty.isVar
this.symbol = newSymbol
@@ -375,7 +375,7 @@ object FirFakeOverrideGenerator {
buildField {
source = baseField.source
this.session = session
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
resolvePhase = baseField.resolvePhase
returnTypeRef = baseField.returnTypeRef.withReplacedConeType(newReturnType)
name = baseField.name
@@ -442,7 +442,7 @@ object FirFakeOverrideGenerator {
FirTypeParameterBuilder().apply {
source = typeParameter.source
session = typeParameter.session
origin = FirDeclarationOrigin.FakeOverride
origin = FirDeclarationOrigin.SubstitutionOverride
name = typeParameter.name
symbol = FirTypeParameterSymbol()
variance = typeParameter.variance
@@ -73,7 +73,7 @@ class FirScopeWithFakeOverrideTypeCalculator(
}
private fun updateReturnType(declaration: FirTypedDeclaration) {
if (declaration.origin == FirDeclarationOrigin.FakeOverride || declaration.origin == FirDeclarationOrigin.IntersectionOverride) {
if (declaration.origin == FirDeclarationOrigin.SubstitutionOverride || declaration.origin == FirDeclarationOrigin.IntersectionOverride) {
fakeOverrideTypeCalculator.computeReturnType(declaration)
}
}
@@ -11,9 +11,9 @@ sealed class FirDeclarationOrigin(val fromSupertypes: Boolean = false) {
object Java : FirDeclarationOrigin()
object Synthetic : FirDeclarationOrigin()
object SamConstructor : FirDeclarationOrigin()
object FakeOverride : FirDeclarationOrigin(fromSupertypes = true)
object Enhancement : FirDeclarationOrigin()
object ImportedFromObject : FirDeclarationOrigin()
object SubstitutionOverride : FirDeclarationOrigin(fromSupertypes = true)
object IntersectionOverride : FirDeclarationOrigin(fromSupertypes = true)
object Delegated : FirDeclarationOrigin()
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.idea.fir
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSymbolOwner
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -16,15 +15,9 @@ import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.PossiblyFirFakeOverrideSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
import org.jetbrains.kotlin.idea.fir.low.level.api.api.LowLevelFirApiFacade
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.util.OperatorNameConventions
import kotlin.reflect.KClass
fun FirFunctionCall.isImplicitFunctionCall(): Boolean {
@@ -58,5 +51,5 @@ internal inline fun <reified D> D.unrollFakeOverrides(): D where D : FirDeclarat
private inline val FirBasedSymbol<*>.isFakeOrIntersectionOverride: Boolean
get() {
val origin = (fir as? FirDeclaration)?.origin ?: return false
return origin == FirDeclarationOrigin.FakeOverride || origin == FirDeclarationOrigin.IntersectionOverride
return origin == FirDeclarationOrigin.SubstitutionOverride || origin == FirDeclarationOrigin.IntersectionOverride
}