[FIR] Rename FirDeclaration.session to declarationSiteSession

This commit is contained in:
Dmitriy Novozhilov
2021-04-21 12:34:00 +03:00
committed by TeamCityServer
parent 46f5c2073d
commit c3b1be1a39
136 changed files with 213 additions and 213 deletions
@@ -51,13 +51,13 @@ object FirCallsEffectAnalyzer : FirControlFlowChecker() {
val functionalTypeEffects = mutableMapOf<AbstractFirBasedSymbol<*>, ConeCallsEffectDeclaration>()
function.valueParameters.forEachIndexed { index, parameter ->
if (parameter.returnTypeRef.isFunctionalTypeRef(function.session)) {
if (parameter.returnTypeRef.isFunctionalTypeRef(function.declarationSiteSession)) {
val effectDeclaration = function.contractDescription.getParameterCallsEffectDeclaration(index)
if (effectDeclaration != null) functionalTypeEffects[parameter.symbol] = effectDeclaration
}
}
if (function.receiverTypeRef.isFunctionalTypeRef(function.session)) {
if (function.receiverTypeRef.isFunctionalTypeRef(function.declarationSiteSession)) {
val effectDeclaration = function.contractDescription.getParameterCallsEffectDeclaration(-1)
if (effectDeclaration != null) functionalTypeEffects[function.symbol] = effectDeclaration
}
@@ -50,7 +50,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() {
if (effects.isNullOrEmpty()) return
val logicSystem = object : PersistentLogicSystem(function.session.typeContext) {
val logicSystem = object : PersistentLogicSystem(function.declarationSiteSession.typeContext) {
override fun processUpdatedReceiverVariable(flow: PersistentFlow, variable: RealVariable) =
throw IllegalStateException("Receiver variable update is not possible for this logic system")
@@ -84,8 +84,8 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() {
context: CheckerContext
): Boolean {
val effect = effectDeclaration.effect as ConeReturnsEffectDeclaration
val builtinTypes = function.session.builtinTypes
val typeContext = function.session.typeContext
val builtinTypes = function.declarationSiteSession.builtinTypes
val typeContext = function.declarationSiteSession.typeContext
val flow = dataFlowInfo.flowOnNodes.getValue(node) as PersistentFlow
val isReturn = node is JumpNode && node.fir is FirReturnExpression
@@ -104,7 +104,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() {
if (effect.value != ConeConstantReference.WILDCARD) {
val operation = effect.value.toOperation()
if (expressionType != null && expressionType.isInapplicableWith(operation, function.session)) return false
if (expressionType != null && expressionType.isInapplicableWith(operation, function.declarationSiteSession)) return false
if (resultExpression is FirConstExpression<*>) {
if (!resultExpression.isApplicableWith(operation)) return false
@@ -179,7 +179,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() {
is ConeIsNullPredicate -> {
val fir = function.getParameterSymbol(arg.parameterIndex, context).fir
val realVar = variableStorage.getOrCreateRealVariable(flow, fir.symbol, fir)
realVar?.to(simpleTypeStatement(realVar, isNegated, function.session.builtinTypes.anyType.type))?.let { mutableMapOf(it) }
realVar?.to(simpleTypeStatement(realVar, isNegated, function.declarationSiteSession.builtinTypes.anyType.type))?.let { mutableMapOf(it) }
}
is ConeLogicalNot -> arg.buildTypeStatements(function, logicSystem, variableStorage, flow, context)
?.mapValuesTo(mutableMapOf()) { (_, value) -> value.invert() }
@@ -62,8 +62,8 @@ fun FirClass<*>.isSuperclassOf(other: FirClass<*>): Boolean {
*/
fun FirClass<*>.isSuperclassOf(other: FirClass<*>, exclude: MutableSet<FirClass<*>>): Boolean {
for (it in other.superTypeRefs) {
val that = it.firClassLike(session)
?.followAllAlias(session)
val that = it.firClassLike(declarationSiteSession)
?.followAllAlias(declarationSiteSession)
?.safeAs<FirClass<*>>()
?: continue
@@ -96,8 +96,8 @@ fun FirClass<*>.isSupertypeOf(other: FirClass<*>): Boolean {
*/
fun FirClass<*>.isSupertypeOf(other: FirClass<*>, exclude: MutableSet<FirClass<*>>): Boolean {
for (it in other.superTypeRefs) {
val candidate = it.firClassLike(session)
?.followAllAlias(session)
val candidate = it.firClassLike(declarationSiteSession)
?.followAllAlias(declarationSiteSession)
?.safeAs<FirClass<*>>()
?: continue
@@ -81,7 +81,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() {
session: FirSession
) {
val conflicting = conflictingSymbol.fir as? FirDeclaration ?: return
if (declaration.session.moduleInfo != conflicting.session.moduleInfo) return
if (declaration.declarationSiteSession.moduleInfo != conflicting.declarationSiteSession.moduleInfo) return
val actualConflictingPresentation = conflictingPresentation ?: presenter.represent(conflicting)
if (conflicting == declaration || actualConflictingPresentation != declarationPresentation) return
val actualConflictingFile =
@@ -44,7 +44,7 @@ object FirExposedVisibilityDeclarationChecker : FirMemberDeclarationChecker() {
val isInterface = declaration.classKind == ClassKind.INTERFACE
for (supertypeRef in supertypes) {
val supertype = supertypeRef.coneTypeSafe<ConeClassLikeType>() ?: continue
val clazz = supertype.toRegularClass(declaration.session) ?: continue
val clazz = supertype.toRegularClass(declaration.declarationSiteSession) ?: continue
val superIsInterface = clazz.classKind == ClassKind.INTERFACE
if (superIsInterface != isInterface) {
continue
@@ -58,7 +58,7 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
!visibility.visibleFromPackage(classPackage, symbol.callableId.packageName)
) return true
if (visibility == Visibilities.Internal &&
session !== declaration.session
declarationSiteSession !== declaration.declarationSiteSession
) return true
return false
}
@@ -317,7 +317,7 @@ class MultiModuleHtmlFirDump(private val outputRoot: File) {
require(inModule)
val dumpOutput = index.files[file] ?: error("No location for ${file.name}")
val dumper = HtmlFirDump(LinkResolver(dumpOutput), file.session)
val dumper = HtmlFirDump(LinkResolver(dumpOutput), file.declarationSiteSession)
val builder = StringBuilder()
dumper.generate(file, builder)
@@ -200,7 +200,7 @@ class FirElementSerializer private constructor(
@OptIn(ExperimentalStdlibApi::class)
private fun FirClass<*>.declarations(): List<FirCallableMemberDeclaration<*>> = buildList {
val memberScope =
defaultType().scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)
defaultType().scope(declarationSiteSession, scopeSession, FakeOverrideTypeCalculator.DoNothing)
?: error("Null scope for $this")
fun addDeclarationIfNeeded(symbol: FirCallableSymbol<*>) {
@@ -946,17 +946,17 @@ class FirElementSerializer private constructor(
): FirElementSerializer {
val parentClassId = klass.symbol.classId.outerClassId
val parent = if (parentClassId != null && !parentClassId.isLocal) {
val parentClass = klass.session.symbolProvider.getClassLikeSymbolByFqName(parentClassId)!!.fir as FirRegularClass
val parentClass = klass.declarationSiteSession.symbolProvider.getClassLikeSymbolByFqName(parentClassId)!!.fir as FirRegularClass
parentSerializer ?: create(scopeSession, parentClass, extension, null, typeApproximator)
} else {
createTopLevel(klass.session, scopeSession, extension, typeApproximator)
createTopLevel(klass.declarationSiteSession, scopeSession, extension, typeApproximator)
}
// Calculate type parameter ids for the outer class beforehand, as it would've had happened if we were always
// serializing outer classes before nested classes.
// Otherwise our interner can get wrong ids because we may serialize classes in any order.
val serializer = FirElementSerializer(
klass.session,
klass.declarationSiteSession,
scopeSession,
klass,
Interner(parent.typeParameters),
@@ -210,8 +210,8 @@ class FirJvmSerializerExtension(
private fun FirFunction<*>.needsInlineParameterNullCheckRequirement(): Boolean =
this is FirSimpleFunction && isInline && !isSuspend && !isParamAssertionsDisabled &&
!Visibilities.isPrivate(visibility) &&
(valueParameters.any { it.returnTypeRef.coneType.isBuiltinFunctionalType(session) } ||
receiverTypeRef?.coneType?.isBuiltinFunctionalType(session) == true)
(valueParameters.any { it.returnTypeRef.coneType.isBuiltinFunctionalType(declarationSiteSession) } ||
receiverTypeRef?.coneType?.isBuiltinFunctionalType(declarationSiteSession) == true)
override fun serializeProperty(
property: FirProperty,
@@ -256,7 +256,7 @@ class FirJvmSerializerExtension(
val container =
dispatchReceiverType?.classId?.let {
session.firProvider.getFirClassifierByFqName(it) as? FirRegularClass
declarationSiteSession.firProvider.getFirClassifierByFqName(it) as? FirRegularClass
}
if (container == null || !container.isCompanion) {
return false
@@ -264,7 +264,7 @@ class FirJvmSerializerExtension(
val grandParent =
container.classId.outerClassId?.let {
session.firProvider.getFirClassifierByFqName(it) as? FirRegularClass
declarationSiteSession.firProvider.getFirClassifierByFqName(it) as? FirRegularClass
}
return grandParent != null &&
(grandParent.classKind == ClassKind.INTERFACE || grandParent.classKind == ClassKind.ANNOTATION_CLASS)
@@ -79,7 +79,7 @@ class FirMetadataSerializer(
val function = this
return buildAnonymousFunction {
val typeParameterSet = function.typeParameters.filterIsInstanceTo(mutableSetOf<FirTypeParameter>())
session = function.session
session = function.declarationSiteSession
origin = FirDeclarationOrigin.Source
symbol = FirAnonymousFunctionSymbol()
returnTypeRef = function.returnTypeRef.approximated(toSuper = true, typeParameterSet)
@@ -98,7 +98,7 @@ class FirMetadataSerializer(
val accessor = this
return buildPropertyAccessor {
val typeParameterSet = accessor.typeParameters.toMutableSet()
session = accessor.session
session = accessor.declarationSiteSession
origin = FirDeclarationOrigin.Source
returnTypeRef = accessor.returnTypeRef.approximated(toSuper = true, typeParameterSet)
symbol = FirPropertyAccessorSymbol()
@@ -118,7 +118,7 @@ class FirMetadataSerializer(
val property = this
return buildProperty {
val typeParameterSet = property.typeParameters.toMutableSet()
session = property.session
session = property.declarationSiteSession
origin = FirDeclarationOrigin.Source
symbol = FirPropertySymbol(property.symbol.callableId)
returnTypeRef = property.returnTypeRef.approximated(toSuper = true, typeParameterSet)
@@ -739,7 +739,7 @@ class Fir2IrDeclarationStorage(
val field = this
return buildProperty {
source = field.source
session = field.session
session = field.declarationSiteSession
origin = field.origin
returnTypeRef = field.returnTypeRef
name = field.name
@@ -14,7 +14,7 @@ sealed class FirMetadataSource : MetadataSource {
abstract val fir: FirDeclaration
val session: FirSession
get() = fir.session
get() = fir.declarationSiteSession
override val name: Name?
get() = when (val fir = fir) {
@@ -151,7 +151,7 @@ class JavaScopeProvider(
private tailrec fun FirRegularClass.findJavaSuperClass(): FirRegularClass? {
val superClass = superConeTypes.firstNotNullResult {
(it.lookupTag.toSymbol(session)?.fir as? FirRegularClass)?.takeIf { superClass ->
(it.lookupTag.toSymbol(declarationSiteSession)?.fir as? FirRegularClass)?.takeIf { superClass ->
superClass.classKind == ClassKind.CLASS
}
} ?: return null
@@ -166,7 +166,7 @@ class JavaScopeProvider(
DFS.dfs(listOf(this),
{ regularClass ->
regularClass.superConeTypes.mapNotNull {
it.lookupTag.toSymbol(session)?.fir as? FirRegularClass
it.lookupTag.toSymbol(declarationSiteSession)?.fir as? FirRegularClass
}
},
object : DFS.AbstractNodeHandler<FirRegularClass, Unit>() {
@@ -213,7 +213,7 @@ class JavaSymbolProvider(
) {
replaceSuperTypeRefs(
javaClass.supertypes.map { supertype ->
supertype.toFirResolvedTypeRef(session, javaTypeParameterStack, isForSupertypes = true, forTypeParameterBounds = false)
supertype.toFirResolvedTypeRef(declarationSiteSession, javaTypeParameterStack, isForSupertypes = true, forTypeParameterBounds = false)
}
)
}
@@ -354,7 +354,7 @@ class JavaSymbolProvider(
valueParametersForAnnotationConstructor.forEach { javaMethod, firValueParameter ->
javaMethod.annotationParameterDefaultValue?.let { javaDefaultValue ->
firValueParameter.defaultValue =
javaDefaultValue.toFirExpression(session, javaTypeParameterStack, firValueParameter.returnTypeRef)
javaDefaultValue.toFirExpression(declarationSiteSession, javaTypeParameterStack, firValueParameter.returnTypeRef)
}
}
}
@@ -435,7 +435,7 @@ private fun FirRegularClass.createRawArguments(
val erasedUpperBound = typeParameter.getErasedUpperBound {
defaultType().withArguments(defaultArgs.toTypedArray())
}
computeRawProjection(session, typeParameter, position, erasedUpperBound)
computeRawProjection(declarationSiteSession, typeParameter, position, erasedUpperBound)
}
private fun buildEnumCall(session: FirSession, classId: ClassId?, entryName: Name?) =
@@ -31,7 +31,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class)
class FirJavaClass @FirImplementationDetail internal constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val name: Name,
override val annotations: MutableList<FirAnnotationCall>,
@@ -29,7 +29,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class)
class FirJavaConstructor @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override val symbol: FirConstructorSymbol,
override val isPrimary: Boolean,
override var returnTypeRef: FirTypeRef,
@@ -33,7 +33,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class)
class FirJavaField @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override val symbol: FirFieldSymbol,
override val name: Name,
override var resolvePhase: FirResolvePhase,
@@ -51,7 +51,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class)
class FirJavaMethod @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
@@ -235,7 +235,7 @@ inline fun buildJavaMethodCopy(original: FirSimpleFunction, init: FirJavaMethodB
}
val copyBuilder = FirJavaMethodBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSiteSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
@@ -27,7 +27,7 @@ import kotlin.contracts.contract
@OptIn(FirImplementationDetail::class)
class FirJavaValueParameter @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
@@ -182,7 +182,7 @@ inline fun buildJavaValueParameterCopy(original: FirValueParameter, init: FirJav
}
val copyBuilder = FirJavaValueParameterBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSiteSession
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.name = original.name
@@ -382,13 +382,13 @@ class JavaClassUseSiteMemberScope(
}
private fun FirFunction<*>.computeJvmSignature(): String? {
return computeJvmSignature { it.toConeKotlinTypeProbablyFlexible(session, typeParameterStack) }
return computeJvmSignature { it.toConeKotlinTypeProbablyFlexible(declarationSiteSession, typeParameterStack) }
}
private fun FirFunction<*>.computeJvmDescriptor(customName: String? = null, includeReturnType: Boolean = false): String {
return computeJvmDescriptor(customName, includeReturnType) {
it.toConeKotlinTypeProbablyFlexible(
session,
declarationSiteSession,
typeParameterStack
)
}
@@ -61,7 +61,7 @@ fun FirFunctionCall.copy(
fun FirAnonymousFunction.copy(
receiverTypeRef: FirTypeRef? = this.receiverTypeRef,
source: FirSourceElement? = this.source,
session: FirSession = this.session,
session: FirSession = this.declarationSiteSession,
origin: FirDeclarationOrigin = this.origin,
returnTypeRef: FirTypeRef = this.returnTypeRef,
valueParameters: List<FirValueParameter> = this.valueParameters,
@@ -116,7 +116,7 @@ fun FirTypeParameter.copy(
): FirTypeParameter {
return buildTypeParameter {
source = this@copy.source
session = this@copy.session
session = this@copy.declarationSiteSession
name = this@copy.name
symbol = this@copy.symbol
variance = this@copy.variance
@@ -70,11 +70,11 @@ abstract class FirVisibilityChecker : FirSessionComponent {
val symbol = declaration.symbol
return when (declaration.visibility) {
Visibilities.Internal -> {
declaration.session == session || session.moduleVisibilityChecker?.isInFriendModule(declaration) == true
declaration.declarationSiteSession == session || session.moduleVisibilityChecker?.isInFriendModule(declaration) == true
}
Visibilities.Private, Visibilities.PrivateToThis -> {
val ownerId = symbol.getOwnerId()
if (declaration.session == session) {
if (declaration.declarationSiteSession == session) {
when {
ownerId == null -> {
val candidateFile = when (symbol) {
@@ -361,7 +361,7 @@ private fun initialTypeOfCandidate(candidate: Candidate, typeRef: FirResolvedTyp
inline val FirCallableDeclaration<*>.containingClass: FirRegularClass?
get() = this.containingClassAttr?.let { lookupTag ->
session.symbolProvider.getSymbolByLookupTag(lookupTag)?.fir as? FirRegularClass
declarationSiteSession.symbolProvider.getSymbolByLookupTag(lookupTag)?.fir as? FirRegularClass
}
val FirFunction<*>.asForbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget?
@@ -195,7 +195,7 @@ internal object CheckVisibility : CheckerStage() {
if (declaration is FirConstructor) {
// TODO: Should be some other form
val classSymbol = declaration.returnTypeRef.coneTypeUnsafe<ConeClassLikeType>().lookupTag.toSymbol(declaration.session)
val classSymbol = declaration.returnTypeRef.coneTypeUnsafe<ConeClassLikeType>().lookupTag.toSymbol(declaration.declarationSiteSession)
if (classSymbol is FirRegularClassSymbol) {
if (classSymbol.fir.classKind.isSingleton) {
@@ -77,7 +77,7 @@ private fun extraLambdaInfo(
?: expectedType?.typeArguments?.singleOrNull()?.safeAs<ConeKotlinTypeProjection>()?.type?.takeIf { isFunctionSupertype }
?: typeVariable.defaultType
val nothingType = argument.session.builtinTypes.nothingType.type
val nothingType = argument.declarationSiteSession.builtinTypes.nothingType.type
val parameters = argument.valueParameters.map {
it.returnTypeRef.coneTypeSafe<ConeKotlinType>() ?: nothingType
}
@@ -156,7 +156,7 @@ data class ConeSubstitutorByMap(val substitution: Map<FirTypeParameterSymbol, Co
override fun substituteType(type: ConeKotlinType): ConeKotlinType? {
if (type !is ConeTypeParameterType) return null
val result = substitution[type.lookupTag.symbol].updateNullabilityIfNeeded(type) ?: return null
val session = type.lookupTag.symbol.fir.session
val session = type.lookupTag.symbol.fir.declarationSiteSession
if (type.isUnsafeVarianceType(session)) {
return session.inferenceComponents.approximator.approximateToSuperType(
result, TypeApproximatorConfiguration.FinalApproximationAfterResolutionAndInference
@@ -40,8 +40,8 @@ abstract class FirAbstractPhaseTransformer<D>(
}
protected fun checkSessionConsistency(file: FirFile) {
assert(session === file.session) {
assert(session === file.declarationSiteSession) {
"File ${file.name} and transformer ${this::class} have inconsistent sessions"
}
}
}
}
@@ -48,7 +48,7 @@ class FirSealedClassInheritorsProcessor(
data.computeIfAbsent(regularClass) { mutableListOf() }
}
val symbolProvider = regularClass.session.symbolProvider
val symbolProvider = regularClass.declarationSiteSession.symbolProvider
for (typeRef in regularClass.superTypeRefs) {
val parent = extractClassFromTypeRef(symbolProvider, typeRef).takeIf { it?.modality == Modality.SEALED } ?: continue
@@ -390,7 +390,7 @@ abstract class AbstractFirStatusResolveTransformer(
return
}
if (regularClass.resolvePhase > FirResolvePhase.STATUS) return
val firProvider = regularClass.session.firProvider
val firProvider = regularClass.declarationSiteSession.firProvider
val statusComputationStatus = statusComputationSession[regularClass]
if (!statusComputationStatus.requiresComputation) return
@@ -23,7 +23,7 @@ fun AbstractFirBasedSymbol<*>.ensureResolved(
// TODO: Decide which one session should be used and probably get rid of the parameter if use-site session is not needed
@Suppress("UNUSED_PARAMETER") useSiteSession: FirSession,
) {
val session = (fir as FirDeclaration).session
val session = (fir as FirDeclaration).declarationSiteSession
val phaseManager = session.phaseManager
phaseManager.ensureResolved(this, requiredPhase)
}
@@ -43,7 +43,7 @@ class FirPluginAnnotationsResolveTransformer(
override fun transformFile(file: FirFile, data: Any?): FirFile {
checkSessionConsistency(file)
if (!extensionService.hasPredicateBasedExtensions) return file
val registeredPluginAnnotations = file.session.registeredPluginAnnotations
val registeredPluginAnnotations = file.declarationSiteSession.registeredPluginAnnotations
file.replaceResolvePhase(FirResolvePhase.ANNOTATIONS_FOR_PLUGINS)
val newAnnotations = file.resolveAnnotations(registeredPluginAnnotations.annotations, registeredPluginAnnotations.metaAnnotations)
if (!newAnnotations.isEmpty) {
@@ -37,7 +37,7 @@ enum class FirImportingScopeFilter {
// though, "unknown" will always become public anyway.
Visibilities.Unknown -> true
Visibilities.Internal ->
symbol.fir.session == session || session.moduleVisibilityChecker?.isInFriendModule(fir) == true
symbol.fir.declarationSiteSession == session || session.moduleVisibilityChecker?.isInFriendModule(fir) == true
// All non-`internal` visibilities are either even more restrictive (e.g. `private`) or must not
// be checked in imports (e.g. `protected` may be valid in some use sites).
else -> !fir.status.visibility.mustCheckInImports()
@@ -65,7 +65,7 @@ class FirClassDeclaredMemberScope(
val symbols = callablesIndex[name] ?: emptyList()
for (symbol in symbols) {
if (symbol is D) {
symbol.ensureResolvedForCalls(symbol.fir.session)
symbol.ensureResolvedForCalls(symbol.fir.declarationSiteSession)
processor(symbol)
}
}
@@ -59,7 +59,7 @@ class FirDeclaredMemberScopeProvider : FirSessionComponent {
fun declaredMemberScope(klass: FirClass<*>): FirClassDeclaredMemberScope {
return klass
.session
.declarationSiteSession
.declaredMemberScopeProvider
.declaredMemberScope(klass, useLazyNestedClassifierScope = false, existingNames = null, symbolProvider = null)
}
@@ -70,14 +70,14 @@ fun declaredMemberScopeWithLazyNestedScope(
symbolProvider: FirSymbolProvider
): FirScope {
return klass
.session
.declarationSiteSession
.declaredMemberScopeProvider
.declaredMemberScope(klass, useLazyNestedClassifierScope = true, existingNames = existingNames, symbolProvider = symbolProvider)
}
fun nestedClassifierScope(klass: FirClass<*>): FirNestedClassifierScope? {
return klass
.session
.declarationSiteSession
.declaredMemberScopeProvider
.nestedClassifierScope(klass)
}
@@ -465,7 +465,7 @@ object FirFakeOverrideGenerator {
if (typeParameter !is FirTypeParameter) return@map null
FirTypeParameterBuilder().apply {
source = typeParameter.source
session = typeParameter.session
session = typeParameter.declarationSiteSession
origin = FirDeclarationOrigin.SubstitutionOverride
name = typeParameter.name
symbol = FirTypeParameterSymbol()
@@ -344,7 +344,7 @@ class FirTypeIntersectionScope private constructor(
val newSymbol = FirIntersectionOverridePropertySymbol(mostSpecific.callableId, overrides)
val mostSpecificProperty = mostSpecific.fir
FirFakeOverrideGenerator.createCopyForFirProperty(
newSymbol, mostSpecificProperty, mostSpecificProperty.session, FirDeclarationOrigin.IntersectionOverride,
newSymbol, mostSpecificProperty, mostSpecificProperty.declarationSiteSession, FirDeclarationOrigin.IntersectionOverride,
newModality = newModality,
newVisibility = newVisibility,
newDispatchReceiverType = dispatchReceiverType,
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirAnnotatedDeclaration : FirDeclaration, FirAnnotationContainer {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpression(), FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaration, FirSymbolOwner<FirAnonymousInitializer>, FirControlFlowGraphOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousObject : FirClass<FirAnonymousObject>, FirControlFlowGraphOwner, FirExpression() {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirCallableDeclaration<F : FirCallableDeclaration<F>> : FirTypedDeclaration, FirSymbolOwner<F> {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirCallableDeclaration<F>, FirMemberDeclaration {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirTypeParameterRefsOwner {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> : FirAnnotatedDeclaration, FirStatement, FirSymbolOwner<F> {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor>, FirTypeParameterRefsOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirDeclaration : FirElement {
override val source: FirSourceElement?
val session: FirSession
val declarationSiteSession: FirSession
val resolvePhase: FirResolvePhase
val origin: FirDeclarationOrigin
val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDeclaration<FirEnumEntry> {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirErrorFunction>, FirDiagnosticHolder, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCallableMemberDeclaration<FirField> {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirFile : FirPureAbstractElement(), FirAnnotatedDeclaration {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirStatement {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirMemberDeclaration : FirAnnotatedDeclaration, FirTypeParameterRefsOwner {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner, FirControlFlowGraphOwner, FirCallableMemberDeclaration<FirProperty> {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirCallableMemberDeclaration<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirClass<FirRegularClass> {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirTypeAlias : FirPureAbstractElement(), FirClassLikeDeclaration<FirTypeAlias>, FirMemberDeclaration, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirAnnotatedDeclaration, FirSymbolOwner<FirTypeParameter> {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirTypedDeclaration : FirAnnotatedDeclaration {
override val source: FirSourceElement?
override val session: FirSession
override val declarationSiteSession: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlFlowGraphOwner {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCallableDeclaration<F>, FirAnnotatedDeclaration, FirStatement {
abstract override val source: FirSourceElement?
abstract override val session: FirSession
abstract override val declarationSiteSession: FirSession
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
@@ -98,7 +98,7 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
}
val copyBuilder = FirConstructorBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSideSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
@@ -95,7 +95,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
}
val copyBuilder = FirPropertyAccessorBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSideSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
@@ -104,7 +104,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
}
val copyBuilder = FirPropertyBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSideSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
@@ -96,7 +96,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
}
val copyBuilder = FirSimpleFunctionBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSideSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
@@ -81,7 +81,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
}
val copyBuilder = FirValueParameterBuilder()
copyBuilder.source = original.source
copyBuilder.session = original.session
copyBuilder.session = original.declarationSideSession
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirAnonymousFunctionImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override val annotations: MutableList<FirAnnotationCall>,
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirAnonymousInitializerImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirAnonymousObjectImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirConstructorImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirDefaultSetterValueParameter(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirEnumEntryImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirErrorFunctionImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirErrorPropertyImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.fir.visitors.*
class FirFieldImpl @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirFileImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirPrimaryConstructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.visitors.*
open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirPropertyImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirRegularClassImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirSimpleFunctionImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirTypeAliasImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirTypeParameterImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirValueParameterImpl(
override val source: FirSourceElement?,
override val session: FirSession,
override val declarationSiteSession: FirSession,
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
class FirSyntheticProperty(
override val session: FirSession,
override val declarationSiteSession: FirSession,
override val name: Name,
override val isVar: Boolean,
override val symbol: FirAccessorSymbol,
@@ -28,8 +28,8 @@ class FirSyntheticPropertyAccessor(
override val source: FirSourceElement?
get() = delegate.source
override val session: FirSession
get() = delegate.session
override val declarationSiteSession: FirSession
get() = delegate.declarationSiteSession
override val origin: FirDeclarationOrigin
get() = FirDeclarationOrigin.Synthetic
@@ -266,7 +266,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
val collectors = mutableMapOf<FirSession, AbstractDiagnosticCollector>()
val result = mutableMapOf<FirFile, List<FirDiagnostic<*>>>()
for (firFile in firFiles) {
val session = firFile.session
val session = firFile.declarationSiteSession
val collector = collectors.computeIfAbsent(session) { createCollector(session) }
result[firFile] = collector.collectDiagnostics(firFile).toList()
}
@@ -35,7 +35,7 @@ import kotlin.system.measureNanoTime
fun checkFirProvidersConsistency(firFiles: List<FirFile>) {
for ((session, files) in firFiles.groupBy { it.session }) {
for ((session, files) in firFiles.groupBy { it.declarationSiteSession }) {
val provider = session.firProvider as FirProviderImpl
provider.ensureConsistent(files)
}
@@ -316,10 +316,10 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
}
inner class FirRendererForVisualizer : FirVisitor<Unit, StringBuilder>() {
private val session = firFile.session
private val session = firFile.declarationSiteSession
private val filePackage = firFile.packageFqName.toString()
private val filePackageWithSlash = filePackage.replace(".", "/")
private val symbolProvider = firFile.session.symbolProvider
private val symbolProvider = firFile.declarationSiteSession.symbolProvider
private fun ConeTypeProjection.tryToRenderConeAsFunctionType(): String {
if (this !is ConeKotlinType) return localTypeRenderer()
@@ -115,7 +115,7 @@ internal class FirModuleResolveStateImpl(
sessionProvider.getModuleCache(ktDeclaration.getModuleInfo() as ModuleSourceInfo)
)
if (container.resolvePhase < FirResolvePhase.BODY_RESOLVE) {
val cache = (container.session as FirIdeSourcesSession).cache
val cache = (container.declarationSiteSession as FirIdeSourcesSession).cache
firLazyDeclarationResolver.lazyResolveDeclaration(
container,
cache,
@@ -142,7 +142,7 @@ internal class FirModuleResolveStateImpl(
}
override fun <D : FirDeclaration> resolvedFirToPhase(declaration: D, toPhase: FirResolvePhase): D {
val fileCache = when (val session = declaration.session) {
val fileCache = when (val session = declaration.declarationSiteSession) {
is FirIdeSourcesSession -> session.cache
else -> return declaration
}
@@ -165,7 +165,7 @@ internal class FirModuleResolveStateImpl(
firDeclaration,
rootModuleSession.cache,
containerFirFile,
containerFirFile.session.firIdeProvider,
containerFirFile.declarationSiteSession.firIdeProvider,
fromPhase = firDeclaration.resolvePhase,
toPhase = FirResolvePhase.BODY_RESOLVE,
towerDataContextCollector = collector,
@@ -180,4 +180,4 @@ internal class FirModuleResolveStateImpl(
override fun getTowerDataContextForElement(element: KtElement): FirTowerDataContext? {
return collector.getClosestAvailableParentContext(element)
}
}
}
@@ -63,7 +63,7 @@ internal class FirPhaseRunner {
}
private fun runPhaseWithoutLock(firFile: FirFile, phase: FirResolvePhase, scopeSession: ScopeSession) {
val phaseProcessor = phase.createTransformerBasedProcessorByPhase(firFile.session, scopeSession)
val phaseProcessor = phase.createTransformerBasedProcessorByPhase(firFile.declarationSiteSession, scopeSession)
executeWithoutPCE {
FirLazyBodiesCalculator.calculateLazyBodiesIfPhaseRequires(firFile, phase)
phaseProcessor.processFile(firFile)
@@ -91,4 +91,4 @@ internal fun FirResolvePhase.createTransformerBasedProcessorByPhase(
FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveProcessor(session, scopeSession)
FirResolvePhase.BODY_RESOLVE -> FirBodyResolveProcessor(session, scopeSession)
}
}
}
@@ -28,7 +28,7 @@ internal class IdeFirPhaseManager(
try {
lazyDeclarationResolver.lazyResolveDeclaration(fir, cache, requiredPhase, checkPCE = true)
} catch (e: Throwable) {
sessionInvalidator.invalidate(fir.session)
sessionInvalidator.invalidate(fir.declarationSiteSession)
throw e
}
}
@@ -28,10 +28,10 @@ class FirDeclarationDesignation(
object DeclarationDesignationCollector {
fun collectDesignation(declaration: FirDeclaration): FirDeclarationDesignation {
val firProvider = declaration.session.firProvider
val firProvider = declaration.declarationSiteSession.firProvider
val containingClass = when (declaration) {
is FirCallableDeclaration<*> -> declaration.containingClass()?.toFirRegularClass(declaration.session)
is FirCallableDeclaration<*> -> declaration.containingClass()?.toFirRegularClass(declaration.declarationSiteSession)
is FirClassLikeDeclaration<*> -> declaration.symbol.classId.outerClassId?.let(firProvider::getFirClassifierByFqName)
else -> error("Invalid declaration ${declaration.renderWithType()}")
} ?: return FirDeclarationDesignation(emptyList(), declaration, isLocalDesignation = false)
@@ -54,7 +54,7 @@ object DeclarationDesignationCollector {
private fun FirRegularClass.collectForNonLocal(): List<FirClassLikeDeclaration<*>> {
require(!isLocal)
val firProvider = session.firProvider
val firProvider = declarationSiteSession.firProvider
var containingClassId = classId.outerClassId
val designation = mutableListOf<FirClassLikeDeclaration<*>>(this)
while (containingClassId != null) {
@@ -70,7 +70,7 @@ object DeclarationDesignationCollector {
var containingClassLookUp = containingClassForLocal()
val designation = mutableListOf<FirClassLikeDeclaration<*>>(this)
while (containingClassLookUp != null && containingClassLookUp.classId.isLocal) {
val currentClass = containingClassLookUp.toFirRegularClass(session) ?: break
val currentClass = containingClassLookUp.toFirRegularClass(declarationSiteSession) ?: break
designation.add(currentClass)
containingClassLookUp = currentClass.containingClassForLocal()
}
@@ -80,4 +80,4 @@ object DeclarationDesignationCollector {
fun FirDeclaration.collectDesignation(): FirDeclarationDesignation =
DeclarationDesignationCollector.collectDesignation(this)
DeclarationDesignationCollector.collectDesignation(this)
@@ -43,7 +43,7 @@ abstract class FirModuleResolveState {
internal inline fun <D : FirDeclaration, R> withLock(declaration: D, declarationLockType: DeclarationLockType, action: (D) -> R): R {
val originalDeclaration = (declaration as? FirCallableDeclaration<*>)?.unwrapFakeOverrides() ?: declaration
val session = originalDeclaration.session
val session = originalDeclaration.declarationSiteSession
return when {
originalDeclaration.origin == FirDeclarationOrigin.Source
&& session is FirIdeSourcesSession
@@ -93,4 +93,4 @@ abstract class FirModuleResolveState {
}
fun FirModuleResolveState.getTowerDataContextUnsafe(element: KtElement): FirTowerDataContext =
getTowerDataContextForElement(element) ?: error("No context for ${element.getElementTextInContext()}")
getTowerDataContextForElement(element) ?: error("No context for ${element.getElementTextInContext()}")
@@ -31,7 +31,7 @@ internal class SingleNonLocalDeclarationDiagnosticRetriever(
collector: FileStructureElementDiagnosticsCollector,
lockProvider: LockProvider<FirFile>
): FileStructureElementDiagnosticList {
val sessionHolder = SessionHolderImpl.createWithEmptyScopeSession(firFile.session)
val sessionHolder = SessionHolderImpl.createWithEmptyScopeSession(firFile.declarationSiteSession)
val context = lockProvider.withReadLock(firFile) {
PersistenceContextCollector.collectContext(sessionHolder, firFile, structureElementDeclaration)
}
@@ -105,7 +105,7 @@ internal object FileDiagnosticRetriever : FileStructureElementDiagnosticRetrieve
firFile: FirFile,
components: List<AbstractDiagnosticCollectorComponent>
) : FirIdeDiagnosticVisitor(
PersistentCheckerContextFactory.createEmptyPersistenceCheckerContext(SessionHolderImpl.createWithEmptyScopeSession(firFile.session)),
PersistentCheckerContextFactory.createEmptyPersistenceCheckerContext(SessionHolderImpl.createWithEmptyScopeSession(firFile.declarationSiteSession)),
components,
) {
override fun visitFile(file: FirFile, data: Nothing?) {
@@ -118,4 +118,4 @@ internal object FileDiagnosticRetriever : FileStructureElementDiagnosticRetrieve
}
}
}
}
}
@@ -21,11 +21,11 @@ internal class FileStructureElementDiagnosticsCollector private constructor(priv
createVisitor: (components: List<AbstractDiagnosticCollectorComponent>) -> CheckerRunningDiagnosticCollectorVisitor,
): FileStructureElementDiagnosticList =
FirIdeStructureElementDiagnosticsCollector(
firDeclaration.session,
firDeclaration.declarationSiteSession,
createVisitor,
useExtendedCheckers,
).let { collector ->
collector.collectDiagnostics(firDeclaration)
FileStructureElementDiagnosticList(collector.result)
}
}
}
@@ -30,7 +30,7 @@ internal class FileStructure(
private val moduleFileCache: ModuleFileCache,
private val collector: FirTowerDataContextCollector
) {
private val firIdeProvider = firFile.session.firIdeProvider
private val firIdeProvider = firFile.declarationSiteSession.firIdeProvider
private val structureElements = ConcurrentHashMap<KtAnnotated, FileStructureElement>()
@@ -31,7 +31,7 @@ internal object FileStructureUtil {
} else {
val classLikeLookupTag = from.containingClass()
?: error("Class name should not be null for non-top-level & non-local declarations, but was null for\n${from.render()}")
val containingClass = classLikeLookupTag.toSymbol(firFile.session)?.fir as FirRegularClass
val containingClass = classLikeLookupTag.toSymbol(firFile.declarationSiteSession)?.fir as FirRegularClass
containingClass.declarations as MutableList<FirDeclaration>
}
declarations.replaceFirst(from, to)
@@ -52,4 +52,4 @@ internal object FileStructureUtil {
throw e
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More