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 9d3c0873f7d..fde929a62dd 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 @@ -84,7 +84,7 @@ class FakeOverrideGenerator( declarationStorage::getCachedIrFunction, declarationStorage::createIrFunction, createFakeOverrideSymbol = { firFunction, callableSymbol -> - FirFakeOverrideGenerator.createFakeOverrideFunction( + FirFakeOverrideGenerator.createSubstitutionOverrideFunction( session, firFunction, callableSymbol, newDispatchReceiverType = klass.defaultType(), derivedClassId = klass.symbol.classId, @@ -108,7 +108,7 @@ class FakeOverrideGenerator( declarationStorage::getCachedIrProperty, declarationStorage::createIrProperty, createFakeOverrideSymbol = { firProperty, callableSymbol -> - FirFakeOverrideGenerator.createFakeOverrideProperty( + FirFakeOverrideGenerator.createSubstitutionOverrideProperty( session, firProperty, callableSymbol, newDispatchReceiverType = klass.defaultType(), derivedClassId = klass.symbol.classId, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index 5959468c8f2..fb830ca4691 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -133,7 +133,7 @@ private fun FirTypeAliasSymbol.findSAMConstructorForTypeAlias( if (newReturnType == null && newParameterTypes.all { it == null }) return samConstructorForClass - return FirFakeOverrideGenerator.createFakeOverrideFunction( + return FirFakeOverrideGenerator.createSubstitutionOverrideFunction( session, samConstructorForClass, namedSymbol, newDispatchReceiverType = null, newReceiverType = null, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index 75ee3c7e7cb..3b07156d13a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -29,15 +29,15 @@ class FirClassSubstitutionScope( private val makeExpect: Boolean = false ) : FirTypeScope() { - private val fakeOverrideFunctions = mutableMapOf, FirFunctionSymbol<*>>() - private val fakeOverrideConstructors = mutableMapOf() - private val fakeOverrideVariables = mutableMapOf, FirVariableSymbol<*>>() + private val substitutionOverrideFunctions = mutableMapOf, FirFunctionSymbol<*>>() + private val substitutionOverrideConstructors = mutableMapOf() + private val substitutionOverrideVariables = mutableMapOf, FirVariableSymbol<*>>() private val newOwnerClassId = dispatchReceiverTypeForSubstitutedMembers.lookupTag.classId override fun processFunctionsByName(name: Name, processor: (FirFunctionSymbol<*>) -> Unit) { useSiteMemberScope.processFunctionsByName(name) process@{ original -> - val function = fakeOverrideFunctions.getOrPut(original) { createFakeOverrideFunction(original) } + val function = substitutionOverrideFunctions.getOrPut(original) { createSubstitutionOverrideFunction(original) } processor(function) } @@ -49,7 +49,7 @@ class FirClassSubstitutionScope( processor: (FirFunctionSymbol<*>, FirTypeScope) -> ProcessorAction ): ProcessorAction = processDirectOverriddenWithBaseScope( - functionSymbol, processor, FirTypeScope::processDirectOverriddenFunctionsWithBaseScope, fakeOverrideFunctions + functionSymbol, processor, FirTypeScope::processDirectOverriddenFunctionsWithBaseScope, substitutionOverrideFunctions ) private inline fun > processDirectOverriddenWithBaseScope( @@ -70,15 +70,15 @@ class FirClassSubstitutionScope( return useSiteMemberScope.processPropertiesByName(name) process@{ original -> when (original) { is FirPropertySymbol -> { - val property = fakeOverrideVariables.getOrPut(original) { createFakeOverrideProperty(original) } + val property = substitutionOverrideVariables.getOrPut(original) { createSubstitutionOverrideProperty(original) } processor(property) } is FirFieldSymbol -> { - val field = fakeOverrideVariables.getOrPut(original) { createFakeOverrideField(original) } + val field = substitutionOverrideVariables.getOrPut(original) { createSubstitutionOverrideField(original) } processor(field) } is FirAccessorSymbol -> { - val accessor = fakeOverrideVariables.getOrPut(original) { createFakeOverrideAccessor(original) } + val accessor = substitutionOverrideVariables.getOrPut(original) { createSubstitutionOverrideAccessor(original) } processor(accessor) } else -> { @@ -94,7 +94,7 @@ class FirClassSubstitutionScope( ): ProcessorAction = processDirectOverriddenWithBaseScope( propertySymbol, processor, FirTypeScope::processDirectOverriddenPropertiesWithBaseScope, - fakeOverrideVariables + substitutionOverrideVariables ) override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) { @@ -111,7 +111,7 @@ class FirClassSubstitutionScope( return substitutor.substituteOrNull(this) } - private fun createFakeOverrideFunction(original: FirFunctionSymbol<*>): FirFunctionSymbol<*> { + private fun createSubstitutionOverrideFunction(original: FirFunctionSymbol<*>): FirFunctionSymbol<*> { if (substitutor == ConeSubstitutor.Empty) return original val member = when (original) { is FirNamedFunctionSymbol -> original.fir @@ -135,7 +135,7 @@ class FirClassSubstitutionScope( * it's safe to cast newTypeParameters to List */ @Suppress("UNCHECKED_CAST") - return FirFakeOverrideGenerator.createFakeOverrideFunction( + return FirFakeOverrideGenerator.createSubstitutionOverrideFunction( session, member, original, @@ -150,7 +150,7 @@ class FirClassSubstitutionScope( ) } - private fun createFakeOverrideConstructor(original: FirConstructorSymbol): FirConstructorSymbol { + private fun createSubstitutionOverrideConstructor(original: FirConstructorSymbol): FirConstructorSymbol { if (substitutor == ConeSubstitutor.Empty) return original val constructor = original.fir @@ -162,14 +162,14 @@ class FirClassSubstitutionScope( if (newReturnType == null && newParameterTypes.all { it == null } && newTypeParameters === constructor.typeParameters) { return original } - return FirFakeOverrideGenerator.createFakeOverrideConstructor( - FirConstructorSymbol(original.callableId, overriddenSymbol = original), + return FirFakeOverrideGenerator.createSubstitutionOverrideConstructor( + FirConstructorSymbol(original.callableId), session, constructor, dispatchReceiverTypeForSubstitutedMembers, newReturnType, newParameterTypes, newTypeParameters, makeExpect, fakeOverrideSubstitution ).symbol } - private fun createFakeOverrideProperty(original: FirPropertySymbol): FirPropertySymbol { + private fun createSubstitutionOverrideProperty(original: FirPropertySymbol): FirPropertySymbol { if (substitutor == ConeSubstitutor.Empty) return original val member = original.fir if (skipPrivateMembers && member.visibility == Visibilities.Private) return original @@ -182,7 +182,7 @@ class FirClassSubstitutionScope( } @Suppress("UNCHECKED_CAST") - return FirFakeOverrideGenerator.createFakeOverrideProperty( + return FirFakeOverrideGenerator.createSubstitutionOverrideProperty( session, member, original, @@ -220,7 +220,7 @@ class FirClassSubstitutionScope( return SubstitutedData(newTypeParameters, newReceiverType, newReturnType, substitutor, fakeOverrideSubstitution) } - private fun createFakeOverrideField(original: FirFieldSymbol): FirFieldSymbol { + private fun createSubstitutionOverrideField(original: FirFieldSymbol): FirFieldSymbol { if (substitutor == ConeSubstitutor.Empty) return original val member = original.fir if (skipPrivateMembers && member.visibility == Visibilities.Private) return original @@ -229,10 +229,10 @@ class FirClassSubstitutionScope( // TODO: do we have fields with implicit type? val newReturnType = returnType?.substitute() ?: return original - return FirFakeOverrideGenerator.createFakeOverrideField(session, member, original, newReturnType, newOwnerClassId) + return FirFakeOverrideGenerator.createSubstitutionOverrideField(session, member, original, newReturnType, newOwnerClassId) } - private fun createFakeOverrideAccessor(original: FirAccessorSymbol): FirAccessorSymbol { + private fun createSubstitutionOverrideAccessor(original: FirAccessorSymbol): FirAccessorSymbol { if (substitutor == ConeSubstitutor.Empty) return original val member = original.fir as FirSyntheticProperty if (skipPrivateMembers && member.visibility == Visibilities.Private) return original @@ -262,7 +262,7 @@ class FirClassSubstitutionScope( override fun processDeclaredConstructors(processor: (FirConstructorSymbol) -> Unit) { useSiteMemberScope.processDeclaredConstructors process@{ original -> - val constructor = fakeOverrideConstructors.getOrPut(original) { createFakeOverrideConstructor(original) } + val constructor = substitutionOverrideConstructors.getOrPut(original) { createSubstitutionOverrideConstructor(original) } processor(constructor) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 45e1268f99e..bafb30a7d92 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty +import org.jetbrains.kotlin.fir.originalForSubstitutionOverrideAttr import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap @@ -28,7 +29,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.utils.addToStdlib.runIf object FirFakeOverrideGenerator { - fun createFakeOverrideFunction( + fun createSubstitutionOverrideFunction( session: FirSession, baseFunction: FirSimpleFunction, baseSymbol: FirNamedFunctionSymbol, @@ -42,17 +43,16 @@ object FirFakeOverrideGenerator { fakeOverrideSubstitution: FakeOverrideSubstitution? = null ): FirNamedFunctionSymbol { val symbol = FirNamedFunctionSymbol( - CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseFunction.name), - overriddenSymbol = baseSymbol + CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseFunction.name) ) - createFakeOverrideFunction( + createSubstitutionOverrideFunction( symbol, session, baseFunction, newDispatchReceiverType, newReceiverType, newReturnType, newParameterTypes, newTypeParameters, isExpect, fakeOverrideSubstitution ) return symbol } - private fun createFakeOverrideFunction( + private fun createSubstitutionOverrideFunction( fakeOverrideSymbol: FirFunctionSymbol, session: FirSession, baseFunction: FirSimpleFunction, @@ -78,7 +78,9 @@ object FirFakeOverrideGenerator { newReceiverType, newReturnType, fakeOverrideSubstitution = fakeOverrideSubstitution - ) + ).apply { + originalForSubstitutionOverrideAttr = baseFunction + } } fun createCopyForFirFunction( @@ -113,7 +115,7 @@ object FirFakeOverrideGenerator { } } - fun createFakeOverrideConstructor( + fun createSubstitutionOverrideConstructor( fakeOverrideSymbol: FirConstructorSymbol, session: FirSession, baseConstructor: FirConstructor, @@ -142,6 +144,8 @@ object FirFakeOverrideGenerator { resolvePhase = baseConstructor.resolvePhase source = baseConstructor.source attributes = baseConstructor.attributes.copy() + }.apply { + originalForSubstitutionOverrideAttr = baseConstructor } } @@ -236,7 +240,7 @@ object FirFakeOverrideGenerator { } } - fun createFakeOverrideProperty( + fun createSubstitutionOverrideProperty( session: FirSession, baseProperty: FirProperty, baseSymbol: FirPropertySymbol, @@ -249,14 +253,15 @@ object FirFakeOverrideGenerator { fakeOverrideSubstitution: FakeOverrideSubstitution? = null ): FirPropertySymbol { val symbol = FirPropertySymbol( - CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseProperty.name), - overriddenSymbol = baseSymbol + CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseProperty.name) ) createCopyForFirProperty( symbol, baseProperty, session, FirDeclarationOrigin.SubstitutionOverride, isExpect, newDispatchReceiverType, newTypeParameters, newReceiverType, newReturnType, fakeOverrideSubstitution = fakeOverrideSubstitution - ) + ).apply { + originalForSubstitutionOverrideAttr = baseProperty + } return symbol } @@ -372,7 +377,7 @@ object FirFakeOverrideGenerator { receiverTypeRef = baseProperty.receiverTypeRef?.withReplacedConeType(newReceiverType) } - fun createFakeOverrideField( + fun createSubstitutionOverrideField( session: FirSession, baseField: FirField, baseSymbol: FirFieldSymbol, @@ -397,6 +402,8 @@ object FirFakeOverrideGenerator { annotations += baseField.annotations attributes = baseField.attributes.copy() dispatchReceiverType = baseField.dispatchReceiverType + }.apply { + originalForSubstitutionOverrideAttr = baseField } return symbol } @@ -411,7 +418,7 @@ object FirFakeOverrideGenerator { fakeOverrideSubstitution: FakeOverrideSubstitution? ): FirAccessorSymbol { val functionSymbol = FirNamedFunctionSymbol(baseSymbol.accessorId) - val function = createFakeOverrideFunction( + val function = createSubstitutionOverrideFunction( functionSymbol, session, baseProperty.getter.delegate, 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 4a98bbcc7f0..618488e7776 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 @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.originalForIntersectionOverrideAttr import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.CallableId @@ -263,8 +264,7 @@ class FirTypeIntersectionScope private constructor( CallableId( dispatchReceiverType.classId ?: mostSpecific.dispatchReceiverClassOrNull()?.classId!!, mostSpecific.fir.name - ), - mostSpecific + ) ) val mostSpecificFunction = mostSpecific.fir FirFakeOverrideGenerator.createCopyForFirFunction( @@ -274,7 +274,9 @@ class FirTypeIntersectionScope private constructor( newDispatchReceiverType = dispatchReceiverType, newModality = newModality, newVisibility = newVisibility, - ) + ).apply { + originalForIntersectionOverrideAttr = mostSpecific.fir + } return newSymbol } @@ -283,14 +285,16 @@ class FirTypeIntersectionScope private constructor( newModality: Modality, newVisibility: Visibility, ): FirPropertySymbol { - val newSymbol = FirPropertySymbol(mostSpecific.callableId, mostSpecific) + val newSymbol = FirPropertySymbol(mostSpecific.callableId) val mostSpecificProperty = mostSpecific.fir FirFakeOverrideGenerator.createCopyForFirProperty( newSymbol, mostSpecificProperty, mostSpecificProperty.session, FirDeclarationOrigin.IntersectionOverride, newModality = newModality, newVisibility = newVisibility, newDispatchReceiverType = dispatchReceiverType, - ) + ).apply { + originalForIntersectionOverrideAttr = mostSpecific.fir + } return newSymbol } 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 ed95e4723ae..8fe3915a9e2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt @@ -34,13 +34,13 @@ val FirCallableDeclaration<*>.isIntersectionOverride get() = origin == FirDeclar val FirCallableDeclaration<*>.isSubstitutionOverride get() = origin == FirDeclarationOrigin.SubstitutionOverride inline val > D.originalForSubstitutionOverride: D? - get() = if (isSubstitutionOverride) symbol.overriddenSymbol?.fir as D? else null + get() = if (isSubstitutionOverride) originalForSubstitutionOverrideAttr else null inline val > S.originalForSubstitutionOverride: S? get() = fir.originalForSubstitutionOverride?.symbol as S? inline val > D.baseForIntersectionOverride: D? - get() = if (isIntersectionOverride) symbol.overriddenSymbol?.fir as D? else null + get() = if (isIntersectionOverride) originalForIntersectionOverrideAttr else null inline val > S.baseForIntersectionOverride: S? get() = fir.baseForIntersectionOverride?.symbol as S? @@ -61,3 +61,11 @@ inline fun > D.unwrapFakeOverrides(): D { } inline fun > S.unwrapFakeOverrides(): S = fir.unwrapFakeOverrides().symbol as S + +private object SubstitutedOverrideOriginalKey : FirDeclarationDataKey() +var > + D.originalForSubstitutionOverrideAttr: D? by FirDeclarationDataRegistry.data(SubstitutedOverrideOriginalKey) + +private object IntersectionOverrideOriginalKey : FirDeclarationDataKey() +var > + D.originalForIntersectionOverrideAttr: D? by FirDeclarationDataRegistry.data(IntersectionOverrideOriginalKey) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/PossiblyFirFakeOverrideSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/PossiblyFirFakeOverrideSymbol.kt index a3ba5c3e24d..24858ebb6d6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/PossiblyFirFakeOverrideSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/PossiblyFirFakeOverrideSymbol.kt @@ -8,6 +8,4 @@ package org.jetbrains.kotlin.fir.symbols import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.declarations.FirDeclaration -interface PossiblyFirFakeOverrideSymbol> : FirBasedSymbol where E : FirSymbolOwner, E : FirDeclaration { - val overriddenSymbol: S? -} +interface PossiblyFirFakeOverrideSymbol> : FirBasedSymbol where E : FirSymbolOwner, E : FirDeclaration diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt index 4995397582f..8af9b14bbce 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt @@ -14,9 +14,6 @@ import org.jetbrains.kotlin.fir.symbols.CallableId abstract class FirCallableSymbol> : AbstractFirBasedSymbol() { abstract val callableId: CallableId - - open val overriddenSymbol: FirCallableSymbol? - get() = null } val FirCallableSymbol<*>.isStatic: Boolean get() = (fir as? FirMemberDeclaration)?.status?.isStatic == true diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt index 8c0f4b02b21..f941cea592d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt @@ -24,12 +24,10 @@ sealed class FirFunctionSymbol>( open class FirNamedFunctionSymbol( callableId: CallableId, - override val overriddenSymbol: FirNamedFunctionSymbol? = null, ) : FirFunctionSymbol(callableId), PossiblyFirFakeOverrideSymbol class FirConstructorSymbol( - callableId: CallableId, - override val overriddenSymbol: FirConstructorSymbol? = null + callableId: CallableId ) : FirFunctionSymbol(callableId) open class FirAccessorSymbol( diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt index dad7f9157c8..257dffb23af 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt @@ -23,7 +23,6 @@ open class FirVariableSymbol>(override val callableId: Callab open class FirPropertySymbol( callableId: CallableId, - override val overriddenSymbol: FirPropertySymbol? = null, ) : FirVariableSymbol(callableId), PossiblyFirFakeOverrideSymbol { // TODO: should we use this constructor for local variables? constructor(name: Name) : this(CallableId(name)) diff --git a/compiler/testData/codegen/box/annotations/typeAnnotations/kt41484.kt b/compiler/testData/codegen/box/annotations/typeAnnotations/kt41484.kt index c21ac1949ec..73e2000475f 100644 --- a/compiler/testData/codegen/box/annotations/typeAnnotations/kt41484.kt +++ b/compiler/testData/codegen/box/annotations/typeAnnotations/kt41484.kt @@ -1,6 +1,5 @@ // KOTLIN_CONFIGURATION_FLAGS: +JVM.EMIT_JVM_TYPE_ANNOTATIONS // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // JVM_TARGET: 1.8 // FULL_JDK diff --git a/compiler/testData/codegen/box/properties/substituteJavaSuperField.kt b/compiler/testData/codegen/box/properties/substituteJavaSuperField.kt index dc83b8337c5..1c605b2dabe 100644 --- a/compiler/testData/codegen/box/properties/substituteJavaSuperField.kt +++ b/compiler/testData/codegen/box/properties/substituteJavaSuperField.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // FILE: Test.java diff --git a/compiler/testData/ir/irText/types/smartCastOnFieldReceiverOfGenericType.fir.txt b/compiler/testData/ir/irText/types/smartCastOnFieldReceiverOfGenericType.fir.txt index 62ae2c87c1d..39d947804da 100644 --- a/compiler/testData/ir/irText/types/smartCastOnFieldReceiverOfGenericType.fir.txt +++ b/compiler/testData/ir/irText/types/smartCastOnFieldReceiverOfGenericType.fir.txt @@ -9,7 +9,7 @@ FILE fqName: fileName:/smartCastOnFieldReceiverOfGenericType.kt TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit TYPE_OP type=kotlin.String origin=CAST typeOperand=kotlin.String GET_VAR 'b: kotlin.Any declared in .testSetField' type=kotlin.Any origin=null - SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:value type:kotlin.String? visibility:public' type=kotlin.Unit origin=EQ + SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:value type:T of .JCell? visibility:public' type=kotlin.Unit origin=EQ receiver: TYPE_OP type=.JCell origin=IMPLICIT_CAST typeOperand=.JCell GET_VAR 'a: kotlin.Any declared in .testSetField' type=kotlin.Any origin=null value: TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String @@ -21,6 +21,6 @@ FILE fqName: fileName:/smartCastOnFieldReceiverOfGenericType.kt TYPE_OP type=.JCell origin=CAST typeOperand=.JCell GET_VAR 'a: kotlin.Any declared in .testGetField' type=kotlin.Any origin=null RETURN type=kotlin.Nothing from='public final fun testGetField (a: kotlin.Any): kotlin.String declared in ' - GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:value type:kotlin.String? visibility:public' type=kotlin.String? origin=GET_PROPERTY + GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:value type:T of .JCell? visibility:public' type=kotlin.String? origin=GET_PROPERTY receiver: TYPE_OP type=.JCell origin=IMPLICIT_CAST typeOperand=.JCell GET_VAR 'a: kotlin.Any declared in .testGetField' type=kotlin.Any origin=null