diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt index 09e7c4b486f..9e2e8b7fa98 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData import org.jetbrains.kotlin.analysis.project.structure.KtModule -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* @@ -36,7 +36,7 @@ fun FirBasedSymbol<*>.getContainingKtModule(firResolveSession: LLFirResolveSessi val target = when (this) { is FirCallableSymbol -> { // callable fake overrides have use-site FirModuleData - dispatchReceiverClassOrNull()?.toFirRegularClassSymbol(firResolveSession.useSiteFirSession) ?: this + dispatchReceiverClassLookupTagOrNull()?.toFirRegularClassSymbol(firResolveSession.useSiteFirSession) ?: this } else -> this } diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt index 145bcd93bea..f2a981cce3b 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt @@ -224,7 +224,7 @@ class FirElementSerializer private constructor( if (declaration.isSubstitutionOrIntersectionOverride) return // non-intersection or substitution fake override - if (!declaration.isStatic && declaration.dispatchReceiverClassOrNull() != this@declarations.symbol.toLookupTag()) return + if (!declaration.isStatic && declaration.dispatchReceiverClassLookupTagOrNull() != this@declarations.symbol.toLookupTag()) return add(declaration) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index a2676ac0069..dd7d67b86de 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -414,7 +414,7 @@ fun FirTypeScope.processOverriddenFunctionsFromSuperClasses( ): ProcessorAction = processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, _ -> val unwrapped = if (overridden.fir.isSubstitutionOverride && - overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag() + overridden.dispatchReceiverClassLookupTagOrNull() == containingClass.symbol.toLookupTag() ) overridden.originalForSubstitutionOverride!! else @@ -430,7 +430,7 @@ fun FirTypeScope.processOverriddenPropertiesFromSuperClasses( ): ProcessorAction = processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, _ -> val unwrapped = if (overridden.fir.isSubstitutionOverride && - overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag() + overridden.dispatchReceiverClassLookupTagOrNull() == containingClass.symbol.toLookupTag() ) overridden.originalForSubstitutionOverride!! else diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index b34af38009a..18f90cee81e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -1406,8 +1406,8 @@ class Fir2IrDeclarationStorage( symbolTable.declareProperty(signature, { symbol }) { val isFakeOverride = fir.isSubstitutionOrIntersectionOverride && - firPropertySymbol.dispatchReceiverClassOrNull() != - firPropertySymbol.originalForSubstitutionOverride?.dispatchReceiverClassOrNull() + firPropertySymbol.dispatchReceiverClassLookupTagOrNull() != + firPropertySymbol.originalForSubstitutionOverride?.dispatchReceiverClassLookupTagOrNull() Fir2IrLazyProperty( components, startOffset, endOffset, declarationOrigin, fir, (lazyParent as? Fir2IrLazyClass)?.fir, symbol, isFakeOverride ).apply { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 34585328f0e..9f8851ed177 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -698,7 +698,7 @@ class CallAndReferenceGenerator( val resolvedReference = callableReferenceAccess.calleeReference as FirResolvedNamedReference val firCallableSymbol = resolvedReference.resolvedSymbol as FirCallableSymbol<*> // Make sure the reference indeed refers to a member of that companion - if (firCallableSymbol.dispatchReceiverClassOrNull() != classSymbol.toLookupTag()) { + if (firCallableSymbol.dispatchReceiverClassLookupTagOrNull() != classSymbol.toLookupTag()) { return null } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index b874ef90098..12d09803630 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.utils.isExpect import org.jetbrains.kotlin.fir.declarations.utils.isFromEnumClass import org.jetbrains.kotlin.fir.declarations.utils.visibility -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression @@ -175,7 +175,7 @@ internal class ClassMemberGenerator( irFunction.body = IrSyntheticBodyImpl(startOffset, endOffset, kind) } irFunction.parent is IrClass && irFunction.parentAsClass.isData -> { - val lookupTag = firFunction?.symbol?.dispatchReceiverClassOrNull() + val lookupTag = firFunction?.symbol?.dispatchReceiverClassLookupTagOrNull() when { DataClassResolver.isComponentLike(irFunction.name) -> firFunction?.body?.let { irFunction.body = visitor.convertToIrBlockBody(it) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index aee7513820b..2f4c6d31b27 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -176,7 +176,7 @@ class FakeOverrideGenerator( } private fun FirCallableSymbol<*>.shouldHaveComputedBaseSymbolsForClass(classLookupTag: ConeClassLikeLookupTag): Boolean = - fir.origin.fromSupertypes && dispatchReceiverClassOrNull() == classLookupTag + fir.origin.fromSupertypes && dispatchReceiverClassLookupTagOrNull() == classLookupTag private inline fun , reified I : IrDeclaration> createFakeOverriddenIfNeeded( klass: FirClass, @@ -197,7 +197,7 @@ class FakeOverrideGenerator( val classLookupTag = klass.symbol.toLookupTag() val originalDeclaration = originalSymbol.fir - if (originalSymbol.dispatchReceiverClassOrNull() == classLookupTag && !originalDeclaration.origin.fromSupertypes) return + if (originalSymbol.dispatchReceiverClassLookupTagOrNull() == classLookupTag && !originalDeclaration.origin.fromSupertypes) return // Data classes' methods from Any (toString/equals/hashCode) are not handled by the line above because they have Any-typed dispatch receiver // (there are no special FIR method for them, it's just fake overrides) // But they are treated differently in IR (real declarations have already been declared before) and such methods are present among realDeclarationSymbols @@ -330,7 +330,7 @@ class FakeOverrideGenerator( return scope.directOverridden(symbol).map { // Unwrapping should happen only for fake overrides members from the same class, not from supertypes - if (it.fir.isSubstitutionOverride && it.dispatchReceiverClassOrNull() == containingClass) + if (it.fir.isSubstitutionOverride && it.dispatchReceiverClassLookupTagOrNull() == containingClass) it.originalForSubstitutionOverride!! else it diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index 8559dd10103..b296aad75cb 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -10,11 +10,9 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.* -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.isNewPlaceForBodyGeneration import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride -import org.jetbrains.kotlin.fir.scopes.getDeclaredConstructors -import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol @@ -197,7 +195,7 @@ class Fir2IrLazyClass( scope.processFunctionsByName(name) { if (it.isSubstitutionOrIntersectionOverride) return@processFunctionsByName if (!shouldBuildStub(it.fir)) return@processFunctionsByName - if (it.dispatchReceiverClassOrNull() == ownerLookupTag) { + if (it.dispatchReceiverClassLookupTagOrNull() == ownerLookupTag) { if (it.isAbstractMethodOfAny()) { return@processFunctionsByName } @@ -207,7 +205,7 @@ class Fir2IrLazyClass( scope.processPropertiesByName(name) { if (it.isSubstitutionOrIntersectionOverride) return@processPropertiesByName if (!shouldBuildStub(it.fir)) return@processPropertiesByName - if (it is FirPropertySymbol && it.dispatchReceiverClassOrNull() == ownerLookupTag) { + if (it is FirPropertySymbol && it.dispatchReceiverClassLookupTagOrNull() == ownerLookupTag) { result.addIfNotNull( declarationStorage.getIrPropertySymbol(it, forceTopLevelPrivate = isTopLevelPrivate).owner as? IrDeclaration ) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt index e9d2c4ec14c..8c312f47bdc 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt @@ -91,7 +91,7 @@ class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignat if (declaration is FirRegularClass && declaration.classId.isLocal) return null if (declaration is FirCallableDeclaration) { if (declaration.visibility == Visibilities.Local) return null - if (!allowLocalClasses && (declaration.dispatchReceiverClassOrNull()?.classId?.isLocal == true || containingClass?.classId?.isLocal == true)) return null + if (!allowLocalClasses && (declaration.dispatchReceiverClassLookupTagOrNull()?.classId?.isLocal == true || containingClass?.classId?.isLocal == true)) return null } val declarationWithParentId = FirDeclarationWithParentId(declaration, containingClass?.classId) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaScopeUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaScopeUtils.kt index 8babc598987..bf1882dad5a 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaScopeUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaScopeUtils.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.java.scopes import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.java.scopes.ClassicBuiltinSpecialProperties.getBuiltinSpecialPropertyGetterName import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.* @@ -159,7 +159,7 @@ object ClassicBuiltinSpecialProperties { } private fun FirCallableSymbol<*>.isFromBuiltinClass(session: FirSession): Boolean { - return dispatchReceiverClassOrNull()?.toSymbol(session)?.fir?.origin == FirDeclarationOrigin.BuiltIns + return dispatchReceiverClassLookupTagOrNull()?.toSymbol(session)?.fir?.origin == FirDeclarationOrigin.BuiltIns } private fun FirNamedFunctionSymbol.firstOverriddenFunction( diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt index 26b6f773537..1940cfa9521 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt @@ -304,7 +304,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { val dispatchReceiverParameterClassSymbol = (fir as? FirCallableDeclaration) ?.propertyIfAccessor?.propertyIfBackingField - ?.dispatchReceiverClassOrNull()?.toSymbol(session) + ?.dispatchReceiverClassLookupTagOrNull()?.toSymbol(session) ?: return true val dispatchReceiverParameterClassLookupTag = dispatchReceiverParameterClassSymbol.toLookupTag() diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt index d38cec468e1..172c3d8eeda 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt @@ -125,7 +125,7 @@ class FirSyntheticPropertiesScope private constructor( }) } - val classLookupTag = getterSymbol.originalOrSelf().dispatchReceiverClassOrNull() + val classLookupTag = getterSymbol.originalOrSelf().dispatchReceiverClassLookupTagOrNull() val packageName = classLookupTag?.classId?.packageFqName ?: getterSymbol.callableId.packageName val className = classLookupTag?.classId?.relativeClassName diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index 98bfaf6e262..6ac9d909c3e 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.caches.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.visibility -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.originalForSubstitutionOverride import org.jetbrains.kotlin.fir.resolve.ScopeSessionKey import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor @@ -286,7 +286,7 @@ class FirClassSubstitutionScope( member as FirTypeParameterRefsOwner, symbolForOverride, substitutor, - forceTypeParametersRecreation = dispatchReceiverTypeForSubstitutedMembers.lookupTag != member.dispatchReceiverClassOrNull() + forceTypeParametersRecreation = dispatchReceiverTypeForSubstitutedMembers.lookupTag != member.dispatchReceiverClassLookupTagOrNull() ) val receiverType = member.receiverTypeRef?.coneType diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScopeContext.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScopeContext.kt index 8ed2b4621bb..5b4fe896d2f 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScopeContext.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScopeContext.kt @@ -356,7 +356,7 @@ class FirTypeIntersectionScopeContext( val key = mostSpecific.first() as FirNamedFunctionSymbol val keyFir = key.fir val callableId = CallableId( - dispatchReceiverType.classId ?: keyFir.dispatchReceiverClassOrNull()?.classId!!, + dispatchReceiverType.classId ?: keyFir.dispatchReceiverClassLookupTagOrNull()?.classId!!, keyFir.name ) val newSymbol = FirIntersectionOverrideFunctionSymbol(callableId, overrides) @@ -381,7 +381,7 @@ class FirTypeIntersectionScopeContext( val key = mostSpecific.first() as FirPropertySymbol val keyFir = key.fir val callableId = CallableId( - dispatchReceiverType.classId ?: keyFir.dispatchReceiverClassOrNull()?.classId!!, + dispatchReceiverType.classId ?: keyFir.dispatchReceiverClassLookupTagOrNull()?.classId!!, keyFir.name ) val newSymbol = FirIntersectionOverridePropertySymbol(callableId, overrides) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index a4bf8972d68..e6ffc9d25f2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -541,7 +541,7 @@ fun FirFunction.getAsForbiddenNamedArgumentsTarget( } // referenced function of a Kotlin function type FirDeclarationOrigin.BuiltIns -> { - if (dispatchReceiverClassOrNull()?.isBuiltinFunctionalType() == true) { + if (dispatchReceiverClassLookupTagOrNull()?.isBuiltinFunctionalType() == true) { ForbiddenNamedArgumentsTarget.INVOKE_ON_FUNCTION_TYPE } else { null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt index 797ad0fcc68..7aa3c6f37de 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.descriptors.isClass import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.utils.modality -import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess import org.jetbrains.kotlin.fir.references.FirNamedReference @@ -151,5 +151,5 @@ private fun BodyResolveComponents.isConcreteMember(supertype: ConeKotlinType, me val classSymbol = (supertype as? ConeClassLikeType)?.lookupTag?.toSymbol(session) as? FirRegularClassSymbol ?: return true if (classSymbol.fir.classKind != ClassKind.INTERFACE) return true - return member.symbol.unwrapFakeOverrides().dispatchReceiverClassOrNull()?.classId != StandardClassIds.Any + return member.symbol.unwrapFakeOverrides().dispatchReceiverClassLookupTagOrNull()?.classId != StandardClassIds.Any } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt index 146471d151f..a5077eab589 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt @@ -333,7 +333,7 @@ class ScopeTowerLevel( return null } - val lookupTag = candidate.fir.propertySymbol.dispatchReceiverClassOrNull() + val lookupTag = candidate.fir.propertySymbol.dispatchReceiverClassLookupTagOrNull() return when { lookupTag != null -> { bodyResolveComponents.implicitReceiverStack.lastDispatchReceiver { implicitReceiverValue -> diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt index e8114f7ae2f..bac2629fdeb 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt @@ -16,22 +16,23 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType fun FirCallableSymbol<*>.dispatchReceiverTypeOrNull(): ConeKotlinType? = fir.dispatchReceiverType -fun FirCallableSymbol<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? = - fir.dispatchReceiverClassOrNull() - fun FirCallableDeclaration.dispatchReceiverClassTypeOrNull(): ConeClassLikeType? = if (dispatchReceiverType is ConeIntersectionType && isIntersectionOverride) baseForIntersectionOverride!!.dispatchReceiverClassTypeOrNull() else dispatchReceiverType as? ConeClassLikeType -fun FirCallableDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? = +fun FirCallableSymbol<*>.dispatchReceiverClassLookupTagOrNull(): ConeClassLikeLookupTag? = + fir.dispatchReceiverClassLookupTagOrNull() + +fun FirCallableDeclaration.dispatchReceiverClassLookupTagOrNull(): ConeClassLikeLookupTag? = dispatchReceiverClassTypeOrNull()?.lookupTag -fun FirCallableSymbol<*>.containingClassLookupTag(): ConeClassLikeLookupTag? = fir.containingClassLookupTag() -fun FirCallableDeclaration.containingClassLookupTag(): ConeClassLikeLookupTag? { - return (containingClassForStaticMemberAttr ?: dispatchReceiverClassOrNull()) -} +fun FirCallableSymbol<*>.containingClassLookupTag(): ConeClassLikeLookupTag? = + fir.containingClassLookupTag() + +fun FirCallableDeclaration.containingClassLookupTag(): ConeClassLikeLookupTag? = + containingClassForStaticMemberAttr ?: dispatchReceiverClassLookupTagOrNull() fun FirRegularClass.containingClassForLocal(): ConeClassLikeLookupTag? = if (isLocal) containingClassForLocalAttr else null diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index ec080bb392a..cea3cc6f78c 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -856,7 +856,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { return when (val fir = this.fir) { is FirConstructor -> fir.returnTypeRef.coneType.isLocal() is FirCallableDeclaration -> { - fir.dispatchReceiverClassOrNull()?.toFirRegularClassSymbol(session)?.isLocal ?: false + fir.dispatchReceiverClassLookupTagOrNull()?.toFirRegularClassSymbol(session)?.isLocal ?: false } else -> false }