[FIR] rename ensureResolve -> lazyResolveToPhase as it better describes function semantics
This commit is contained in:
+3
-3
@@ -45,7 +45,7 @@ import org.jetbrains.kotlin.fir.scopes.impl.toConeType
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
@@ -219,7 +219,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
fun buildFunctionSignature(firSymbol: FirNamedFunctionSymbol): KtFunctionLikeSignature<KtFirFunctionSymbol> {
|
||||
firSymbol.ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
val functionSymbol = buildFunctionSymbol(firSymbol)
|
||||
return KtFunctionLikeSignature(
|
||||
functionSymbol,
|
||||
@@ -320,7 +320,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
fun buildPropertySignature(firSymbol: FirPropertySymbol): KtVariableLikeSignature<KtVariableSymbol> {
|
||||
firSymbol.ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
return KtVariableLikeSignature(
|
||||
buildPropertySymbol(firSymbol),
|
||||
typeBuilder.buildKtType(firSymbol.fir.returnTypeRef),
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.ImplicitReceiverValue
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.receiverType
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
@@ -44,7 +44,7 @@ internal class KtFirCompletionCandidateChecker(
|
||||
possibleExplicitReceiver: KtExpression?,
|
||||
): KtExtensionApplicabilityResult {
|
||||
require(firSymbolForCandidate is KtFirSymbol<*>)
|
||||
firSymbolForCandidate.firSymbol.ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
firSymbolForCandidate.firSymbol.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
val declaration = firSymbolForCandidate.firSymbol.fir as FirCallableDeclaration
|
||||
return checkExtension(declaration, originalFile, nameExpression, possibleExplicitReceiver)
|
||||
}
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.realPsi
|
||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
||||
@@ -50,7 +50,7 @@ internal class KtFirImportOptimizer(
|
||||
override fun analyseImports(file: KtFile): KtImportOptimizerResult {
|
||||
assertIsValidAndAccessible()
|
||||
|
||||
val firFile = file.getOrBuildFirFile(firResolveSession).apply { ensureResolved(FirResolvePhase.BODY_RESOLVE) }
|
||||
val firFile = file.getOrBuildFirFile(firResolveSession).apply { lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) }
|
||||
|
||||
val existingImports = file.importDirectives
|
||||
|
||||
|
||||
+4
-5
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.analysis.api.fir.components
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtImplicitReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtScopeContext
|
||||
@@ -44,7 +43,7 @@ import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.*
|
||||
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -71,15 +70,15 @@ internal class KtFirScopeProvider(
|
||||
private inline fun <T> KtSymbolWithMembers.withFirForScope(crossinline body: (FirClass) -> T): T? {
|
||||
return when (this) {
|
||||
is KtFirNamedClassOrObjectSymbol -> {
|
||||
firSymbol.ensureResolved(FirResolvePhase.TYPES)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
body(firSymbol.fir)
|
||||
}
|
||||
is KtFirAnonymousObjectSymbol -> {
|
||||
firSymbol.ensureResolved(FirResolvePhase.TYPES)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
body(firSymbol.fir)
|
||||
}
|
||||
is KtFirEnumEntrySymbol -> {
|
||||
firSymbol.ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
val initializer = firSymbol.fir.initializer ?: return null
|
||||
check(initializer is FirAnonymousObjectExpression) { "Unexpected enum entry initializer: ${initializer.javaClass}" }
|
||||
body(initializer.anonymousObject)
|
||||
|
||||
+4
-5
@@ -18,10 +18,9 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirIntersectionOverrideFunctionSymbol
|
||||
@@ -113,7 +112,7 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
callableSymbol: KtFirSymbol<*>,
|
||||
crossinline process: (FirTypeScope, FirDeclaration) -> Unit
|
||||
) {
|
||||
containingDeclaration.firSymbol.ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
containingDeclaration.firSymbol.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
val firContainer = containingDeclaration.firSymbol.fir
|
||||
val firCallableDeclaration = callableSymbol.firSymbol.fir
|
||||
|
||||
@@ -154,7 +153,7 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
require(superClass is KtFirSymbol<*>)
|
||||
|
||||
if (subClass == superClass) return false
|
||||
subClass.firSymbol.ensureResolved(FirResolvePhase.SUPER_TYPES)
|
||||
subClass.firSymbol.lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
|
||||
return isSubClassOf(
|
||||
subClass = subClass.firSymbol.fir as FirClass,
|
||||
superClass = superClass.firSymbol.fir as FirClass,
|
||||
@@ -169,7 +168,7 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
if (!checkDeep) return false
|
||||
subClass.superConeTypes.forEach { superType ->
|
||||
val superOfSub = superType.toRegularClassSymbol(rootModuleSession) ?: return@forEach
|
||||
superOfSub.ensureResolved(FirResolvePhase.SUPER_TYPES)
|
||||
superOfSub.lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
|
||||
if (isSubClassOf(superOfSub.fir, superClass, checkDeep = true)) return true
|
||||
}
|
||||
return false
|
||||
|
||||
+2
-6
@@ -14,14 +14,10 @@ import org.jetbrains.kotlin.analysis.api.fir.renderer.FirIdeRenderer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.KtFirSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.fir.types.KtFirType
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.signatures.KtCallableSignature
|
||||
import org.jetbrains.kotlin.analysis.api.signatures.KtFunctionLikeSignature
|
||||
import org.jetbrains.kotlin.analysis.api.signatures.KtVariableLikeSignature
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
|
||||
internal class KtFirSymbolDeclarationRendererProvider(
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
@@ -35,7 +31,7 @@ internal class KtFirSymbolDeclarationRendererProvider(
|
||||
|
||||
override fun renderDeclaration(symbol: KtDeclarationSymbol, options: KtDeclarationRendererOptions): String {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
symbol.firSymbol.ensureResolved(FirResolvePhase.BODY_RESOLVE)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||
return FirIdeRenderer.render(symbol.firSymbol.fir, options, symbol.firSymbol.fir.moduleData.session)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.expressions.FirGetClassCall
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
@@ -66,7 +66,7 @@ internal class KtFirTypeProvider(
|
||||
|
||||
override fun buildSelfClassType(symbol: KtNamedClassOrObjectSymbol): KtType {
|
||||
require(symbol is KtFirNamedClassOrObjectSymbol)
|
||||
symbol.firSymbol.ensureResolved(FirResolvePhase.SUPER_TYPES)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
|
||||
val firClass = symbol.firSymbol.fir
|
||||
val type = ConeClassLikeTypeImpl(
|
||||
firClass.symbol.toLookupTag(),
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.resolvedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.*
|
||||
@@ -68,7 +68,7 @@ internal object FirCompileTimeConstantEvaluator {
|
||||
mode == KtConstantEvaluationMode.CONSTANT_EXPRESSION_EVALUATION && !isConst -> null
|
||||
isVal && hasInitializer -> {
|
||||
// NB: the initializer could be [FirLazyExpression] in [BodyBuildingMode.LAZY_BODIES].
|
||||
this.ensureResolved(FirResolvePhase.BODY_RESOLVE) // to unwrap lazy body
|
||||
this.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) // to unwrap lazy body
|
||||
evaluate(fir.initializer, mode)
|
||||
}
|
||||
else -> null
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.isExtension
|
||||
@@ -100,7 +100,7 @@ internal class KtFirKotlinPropertySymbol(
|
||||
// NB: `field` in accessors indicates the property should have a backing field. To see that, though, we need BODY_RESOLVE.
|
||||
override val hasBackingField: Boolean
|
||||
get() = withValidityAssertion {
|
||||
firSymbol.ensureResolved(FirResolvePhase.BODY_RESOLVE)
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||
firSymbol.fir.hasBackingField
|
||||
}
|
||||
override val isLateInit: Boolean get() = withValidityAssertion { firSymbol.isLateInit }
|
||||
|
||||
+5
-6
@@ -20,11 +20,10 @@ import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.originalForIntersectionOverrideAttr
|
||||
import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.util.ImplementationStatus
|
||||
|
||||
internal class KtFirOverrideInfoProvider(
|
||||
@@ -37,7 +36,7 @@ internal class KtFirOverrideInfoProvider(
|
||||
require(classSymbol is KtFirSymbol<*>)
|
||||
|
||||
// Inspecting visibility requires resolving to status
|
||||
classSymbol.firSymbol.ensureResolved(FirResolvePhase.STATUS)
|
||||
classSymbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val memberFir = memberSymbol.firSymbol.fir as? FirCallableDeclaration ?: return false
|
||||
val parentClassFir = classSymbol.firSymbol.fir as? FirClass ?: return false
|
||||
|
||||
@@ -49,7 +48,7 @@ internal class KtFirOverrideInfoProvider(
|
||||
require(parentClassSymbol is KtFirSymbol<*>)
|
||||
|
||||
// Inspecting implementation status requires resolving to status
|
||||
parentClassSymbol.firSymbol.ensureResolved(FirResolvePhase.STATUS)
|
||||
parentClassSymbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val memberFir = memberSymbol.firSymbol.fir as? FirCallableDeclaration ?: return null
|
||||
val parentClassFir = parentClassSymbol.firSymbol.fir as? FirClass ?: return null
|
||||
|
||||
@@ -64,7 +63,7 @@ internal class KtFirOverrideInfoProvider(
|
||||
|
||||
override fun getOriginalContainingClassForOverride(symbol: KtCallableSymbol): KtClassOrObjectSymbol? {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
symbol.firSymbol.ensureResolved(FirResolvePhase.STATUS)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val firDeclaration = symbol.firSymbol.fir as FirCallableDeclaration
|
||||
val containingClass =
|
||||
getOriginalOverriddenSymbol(firDeclaration)?.containingClass()?.toSymbol(rootModuleSession) ?: return null
|
||||
@@ -74,7 +73,7 @@ internal class KtFirOverrideInfoProvider(
|
||||
|
||||
override fun getOriginalOverriddenSymbol(symbol: KtCallableSymbol): KtCallableSymbol? {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
symbol.firSymbol.ensureResolved(FirResolvePhase.STATUS)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val firDeclaration = symbol.firSymbol.fir as FirCallableDeclaration
|
||||
return getOriginalOverriddenSymbol(firDeclaration)
|
||||
?.buildSymbol(analysisSession.firSymbolBuilder) as KtCallableSymbol?
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -90,7 +90,7 @@ internal fun FirCallableSymbol<*>.dispatchReceiverType(
|
||||
}
|
||||
|
||||
internal fun FirVariableSymbol<*>.getKtConstantInitializer(): KtInitializerValue? {
|
||||
ensureResolved(FirResolvePhase.BODY_RESOLVE)
|
||||
lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||
val firInitializer = fir.initializer ?: return null
|
||||
return firInitializer.asKtInitializerValue()
|
||||
}
|
||||
Reference in New Issue
Block a user