diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt index 6342f0f0ac4..dbccb429cd9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor @@ -100,6 +101,7 @@ class FirTypeIntersectionScope private constructor( val mostSpecificFunction = mostSpecific.fir createFunctionCopy(mostSpecific.fir, newSymbol).apply { resolvePhase = mostSpecificFunction.resolvePhase + origin = FirDeclarationOrigin.IntersectionOverride typeParameters += mostSpecificFunction.typeParameters valueParameters += mostSpecificFunction.valueParameters.mapIndexed { index, mostSpecificParameter -> val overriddenWithDefault = diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt index 1c79d0e1035..bf5189b0d54 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt @@ -14,6 +14,7 @@ sealed class FirDeclarationOrigin { object FakeOverride : FirDeclarationOrigin() object Enhancement : FirDeclarationOrigin() object ImportedFromObject : FirDeclarationOrigin() + object IntersectionOverride : FirDeclarationOrigin() class Plugin(val key: FirPluginKey) : FirDeclarationOrigin() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt index bbf17e26f55..ecf466008fb 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt @@ -25,6 +25,7 @@ private fun FirDeclarationOrigin.asKtSymbolOrigin() = when (this) { FirDeclarationOrigin.Synthetic -> throw InvalidFirDeclarationOriginForSymbol(this) FirDeclarationOrigin.FakeOverride -> throw InvalidFirDeclarationOriginForSymbol(this) FirDeclarationOrigin.ImportedFromObject -> throw InvalidFirDeclarationOriginForSymbol(this) + FirDeclarationOrigin.IntersectionOverride -> throw InvalidFirDeclarationOriginForSymbol(this) FirDeclarationOrigin.Enhancement -> throw InvalidFirDeclarationOriginForSymbol(this) is FirDeclarationOrigin.Plugin -> throw InvalidFirDeclarationOriginForSymbol(this) }