diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index c6685361163..d5479be0c6a 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -265,7 +265,8 @@ class Fir2IrVisitor( } else { functionCall } - return callGenerator.convertToIrCall(convertibleCall, convertibleCall.typeRef) + val explicitReceiverExpression = convertToIrReceiverExpression(functionCall.explicitReceiver) + return callGenerator.convertToIrCall(convertibleCall, convertibleCall.typeRef, explicitReceiverExpression) } private fun FirFunctionCall.resolvedNamedFunctionSymbol(): FirNamedFunctionSymbol? { @@ -278,7 +279,8 @@ class Fir2IrVisitor( } override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Any?): IrElement { - return callGenerator.convertToIrCall(qualifiedAccessExpression, qualifiedAccessExpression.typeRef) + val explicitReceiverExpression = convertToIrReceiverExpression(qualifiedAccessExpression.explicitReceiver) + return callGenerator.convertToIrCall(qualifiedAccessExpression, qualifiedAccessExpression.typeRef, explicitReceiverExpression) } override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression, data: Any?): IrElement { @@ -333,11 +335,15 @@ class Fir2IrVisitor( } override fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: Any?): IrElement { - return callGenerator.convertToIrCallableReference(callableReferenceAccess) + val explicitReceiverExpression = convertToIrReceiverExpression( + callableReferenceAccess.explicitReceiver, callableReferenceMode = true + ) + return callGenerator.convertToIrCallableReference(callableReferenceAccess, explicitReceiverExpression) } override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: Any?): IrElement { - return callGenerator.convertToIrSetCall(variableAssignment) + val explicitReceiverExpression = convertToIrReceiverExpression(variableAssignment.explicitReceiver) + return callGenerator.convertToIrSetCall(variableAssignment, explicitReceiverExpression) } override fun visitConstExpression(constExpression: FirConstExpression, data: Any?): IrElement = @@ -365,6 +371,14 @@ class Fir2IrVisitor( } } + private fun convertToIrReceiverExpression(expression: FirExpression?, callableReferenceMode: Boolean = false): IrExpression? { + return when (expression) { + null -> null + is FirResolvedQualifier -> callGenerator.convertToGetObject(expression, callableReferenceMode) + else -> convertToIrExpression(expression) + } + } + private fun FirBlock.mapToIrStatements(): List { val irRawStatements = statements.map { it.toIrStatement() } val result = mutableListOf() 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 702cd1576de..015f9590708 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 @@ -44,7 +44,10 @@ internal class CallAndReferenceGenerator( private fun ConeKotlinType.toIrType(): IrType = with(typeConverter) { toIrType() } - fun convertToIrCallableReference(callableReferenceAccess: FirCallableReferenceAccess): IrExpression { + fun convertToIrCallableReference( + callableReferenceAccess: FirCallableReferenceAccess, + explicitReceiverExpression: IrExpression? + ): IrExpression { val symbol = callableReferenceAccess.calleeReference.toSymbol(session, classifierStorage, declarationStorage, conversionScope) val type = callableReferenceAccess.typeRef.toIrType() return callableReferenceAccess.convertWithOffsets { startOffset, endOffset -> @@ -91,22 +94,27 @@ internal class CallAndReferenceGenerator( ) } } - }.applyTypeArguments(callableReferenceAccess).applyReceivers(callableReferenceAccess) + }.applyTypeArguments(callableReferenceAccess).applyReceivers(callableReferenceAccess, explicitReceiverExpression) } - fun convertToIrCall(qualifiedAccess: FirQualifiedAccess, typeRef: FirTypeRef): IrExpression { + fun convertToIrCall( + qualifiedAccess: FirQualifiedAccess, + typeRef: FirTypeRef, + explicitReceiverExpression: IrExpression? + ): IrExpression { val explicitReceiver = qualifiedAccess.explicitReceiver if (!qualifiedAccess.safe || explicitReceiver == null) { - return convertToUnsafeIrCall(qualifiedAccess, typeRef) + return convertToUnsafeIrCall(qualifiedAccess, typeRef, explicitReceiverExpression) } return qualifiedAccess.convertWithOffsets { startOffset, endOffset -> val type = typeRef.toIrType() val callableSymbol = (qualifiedAccess.calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirCallableSymbol<*> val typeShouldBeNotNull = callableSymbol?.fir?.returnTypeRef?.coneTypeSafe()?.isNullable == false - val unsafeIrCall = convertToUnsafeIrCall(qualifiedAccess, typeRef, makeNotNull = typeShouldBeNotNull) + val unsafeIrCall = convertToUnsafeIrCall( + qualifiedAccess, typeRef, explicitReceiverExpression, makeNotNull = typeShouldBeNotNull + ) IrBlockImpl(startOffset, endOffset, type, IrStatementOrigin.SAFE_CALL).apply { - val receiver = visitor.convertToIrExpression(explicitReceiver) - val receiverVariable = declarationStorage.declareTemporaryVariable(receiver).apply { + val receiverVariable = declarationStorage.declareTemporaryVariable(explicitReceiverExpression!!).apply { parent = conversionScope.parentFromStack() } statements += receiverVariable @@ -135,7 +143,7 @@ internal class CallAndReferenceGenerator( } private fun convertToUnsafeIrCall( - qualifiedAccess: FirQualifiedAccess, typeRef: FirTypeRef, makeNotNull: Boolean = false + qualifiedAccess: FirQualifiedAccess, typeRef: FirTypeRef, explicitReceiverExpression: IrExpression?, makeNotNull: Boolean = false ): IrExpression { val type = typeRef.toIrType().let { if (makeNotNull) it.makeNotNull() else it } val symbol = qualifiedAccess.calleeReference.toSymbol( @@ -181,10 +189,11 @@ internal class CallAndReferenceGenerator( is IrEnumEntrySymbol -> IrGetEnumValueImpl(startOffset, endOffset, type, symbol) else -> generateErrorCallExpression(startOffset, endOffset, qualifiedAccess.calleeReference, type) } - }.applyCallArguments(qualifiedAccess as? FirCall).applyTypeArguments(qualifiedAccess).applyReceivers(qualifiedAccess) + }.applyCallArguments(qualifiedAccess as? FirCall) + .applyTypeArguments(qualifiedAccess).applyReceivers(qualifiedAccess, explicitReceiverExpression) } - fun convertToIrSetCall(variableAssignment: FirVariableAssignment): IrExpression { + fun convertToIrSetCall(variableAssignment: FirVariableAssignment, explicitReceiverExpression: IrExpression?): IrExpression { val type = irBuiltIns.unitType val calleeReference = variableAssignment.calleeReference val symbol = calleeReference.toSymbol(session, classifierStorage, declarationStorage, conversionScope, preferGetter = false) @@ -218,7 +227,7 @@ internal class CallAndReferenceGenerator( is IrVariableSymbol -> IrSetVariableImpl(startOffset, endOffset, type, symbol, assignedValue, origin) else -> generateErrorCallExpression(startOffset, endOffset, calleeReference) } - }.applyTypeArguments(variableAssignment).applyReceivers(variableAssignment) + }.applyTypeArguments(variableAssignment).applyReceivers(variableAssignment, explicitReceiverExpression) } fun convertToIrConstructorCall(annotationCall: FirAnnotationCall): IrExpression { @@ -257,7 +266,7 @@ internal class CallAndReferenceGenerator( return convertToGetObject(qualifier, callableReferenceMode = false)!! } - private fun convertToGetObject(qualifier: FirResolvedQualifier, callableReferenceMode: Boolean): IrExpression? { + internal fun convertToGetObject(qualifier: FirResolvedQualifier, callableReferenceMode: Boolean): IrExpression? { val typeRef = qualifier.typeRef as? FirResolvedTypeRef val classSymbol = (typeRef?.type as? ConeClassLikeType)?.lookupTag?.toSymbol(session) if (callableReferenceMode && classSymbol is FirRegularClassSymbol) { @@ -351,22 +360,26 @@ internal class CallAndReferenceGenerator( } } - private fun FirQualifiedAccess.findIrDispatchReceiver(): IrExpression? = findIrReceiver(isDispatch = true) + private fun FirQualifiedAccess.findIrDispatchReceiver(explicitReceiverExpression: IrExpression?): IrExpression? = + findIrReceiver(explicitReceiverExpression, isDispatch = true) - private fun FirQualifiedAccess.findIrExtensionReceiver(): IrExpression? = findIrReceiver(isDispatch = false) + private fun FirQualifiedAccess.findIrExtensionReceiver(explicitReceiverExpression: IrExpression?): IrExpression? = + findIrReceiver(explicitReceiverExpression, isDispatch = false) - private fun FirQualifiedAccess.findIrReceiver(isDispatch: Boolean): IrExpression? { + private fun FirQualifiedAccess.findIrReceiver(explicitReceiverExpression: IrExpression?, isDispatch: Boolean): IrExpression? { val firReceiver = if (isDispatch) dispatchReceiver else extensionReceiver + if (firReceiver == explicitReceiver) { + // TODO: remove after fix of KT-35730 (temporary hack to prevent receiver duplication) + if (!isDispatch && dispatchReceiver is FirNoReceiverExpression) { + return visitor.convertToIrExpression(firReceiver) + } + return explicitReceiverExpression + } if (firReceiver is FirResolvedQualifier) { return convertToGetObject(firReceiver, callableReferenceMode = this is FirCallableReferenceAccess) } return firReceiver.takeIf { it !is FirNoReceiverExpression }?.let { visitor.convertToIrExpression(it) } - ?: explicitReceiver?.let { - if (it is FirResolvedQualifier) { - return convertToGetObject(it, callableReferenceMode = this is FirCallableReferenceAccess) - } - visitor.convertToIrExpression(it) - } + ?: explicitReceiverExpression ?: run { if (this is FirCallableReferenceAccess) return null val name = if (isDispatch) "Dispatch" else "Extension" @@ -376,32 +389,32 @@ internal class CallAndReferenceGenerator( } } - private fun IrExpression.applyReceivers(qualifiedAccess: FirQualifiedAccess): IrExpression { + private fun IrExpression.applyReceivers(qualifiedAccess: FirQualifiedAccess, explicitReceiverExpression: IrExpression?): IrExpression { return when (this) { is IrCallWithIndexedArgumentsBase -> { val ownerFunction = symbol.owner as? IrFunction if (ownerFunction?.dispatchReceiverParameter != null) { - dispatchReceiver = qualifiedAccess.findIrDispatchReceiver() + dispatchReceiver = qualifiedAccess.findIrDispatchReceiver(explicitReceiverExpression) } if (ownerFunction?.extensionReceiverParameter != null) { - extensionReceiver = qualifiedAccess.findIrExtensionReceiver() + extensionReceiver = qualifiedAccess.findIrExtensionReceiver(explicitReceiverExpression) } this } is IrNoArgumentsCallableReferenceBase -> { val ownerPropertyGetter = (symbol.owner as? IrProperty)?.getter if (ownerPropertyGetter?.dispatchReceiverParameter != null) { - dispatchReceiver = qualifiedAccess.findIrDispatchReceiver() + dispatchReceiver = qualifiedAccess.findIrDispatchReceiver(explicitReceiverExpression) } if (ownerPropertyGetter?.extensionReceiverParameter != null) { - extensionReceiver = qualifiedAccess.findIrExtensionReceiver() + extensionReceiver = qualifiedAccess.findIrExtensionReceiver(explicitReceiverExpression) } this } is IrFieldExpressionBase -> { val ownerField = symbol.owner if (!ownerField.isStatic) { - receiver = qualifiedAccess.findIrDispatchReceiver() + receiver = qualifiedAccess.findIrDispatchReceiver(explicitReceiverExpression) } this } diff --git a/compiler/testData/codegen/box/arrays/kt4118.kt b/compiler/testData/codegen/box/arrays/kt4118.kt index 0819e317ace..979effeed54 100644 --- a/compiler/testData/codegen/box/arrays/kt4118.kt +++ b/compiler/testData/codegen/box/arrays/kt4118.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun Array.test1(): Array { val func = { i:Int -> this} return func(1) diff --git a/compiler/testData/codegen/box/classes/privateOuterFunctions.kt b/compiler/testData/codegen/box/classes/privateOuterFunctions.kt index 0b67f3ad083..ceeb4ff69ce 100644 --- a/compiler/testData/codegen/box/classes/privateOuterFunctions.kt +++ b/compiler/testData/codegen/box/classes/privateOuterFunctions.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR class C { private fun String.ext() : String = "" private fun f() {} diff --git a/compiler/testData/codegen/box/classes/privateOuterProperty.kt b/compiler/testData/codegen/box/classes/privateOuterProperty.kt index ba455c8d4ed..0f0bc3e452f 100644 --- a/compiler/testData/codegen/box/classes/privateOuterProperty.kt +++ b/compiler/testData/codegen/box/classes/privateOuterProperty.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR class C{ private var v : Int = 0 diff --git a/compiler/testData/codegen/box/closures/captureInSuperConstructorCall/outerCapturedInNestedObject.kt b/compiler/testData/codegen/box/closures/captureInSuperConstructorCall/outerCapturedInNestedObject.kt index 78d2f2824cd..67c2e5359e4 100644 --- a/compiler/testData/codegen/box/closures/captureInSuperConstructorCall/outerCapturedInNestedObject.kt +++ b/compiler/testData/codegen/box/closures/captureInSuperConstructorCall/outerCapturedInNestedObject.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR interface Callback { fun invoke(): String } diff --git a/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalization.kt b/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalization.kt index 55d2917f73a..fc914fa55c6 100644 --- a/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalization.kt +++ b/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalization.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: CONSTRUCTOR_CALL_NORMALIZATION_MODE=enable diff --git a/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalizationSince13.kt b/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalizationSince13.kt index 5427abda797..c97858d3372 100644 --- a/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalizationSince13.kt +++ b/compiler/testData/codegen/box/constructorCall/loopInInlineFunInSuperConstructorCallWithEnabledNormalizationSince13.kt @@ -1,5 +1,4 @@ // !LANGUAGE: +NormalizeConstructorCalls -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME open class A(val s: String) diff --git a/compiler/testData/codegen/box/delegatedProperty/local/kt13557.kt b/compiler/testData/codegen/box/delegatedProperty/local/kt13557.kt index b8ce0b7f7a8..a3e6ec14109 100644 --- a/compiler/testData/codegen/box/delegatedProperty/local/kt13557.kt +++ b/compiler/testData/codegen/box/delegatedProperty/local/kt13557.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME //WITH_REFLECT diff --git a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/captureInlineClassInstanceInObject.kt b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/captureInlineClassInstanceInObject.kt index 35f44efad47..253fc2aeb54 100644 --- a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/captureInlineClassInstanceInObject.kt +++ b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/captureInlineClassInstanceInObject.kt @@ -1,5 +1,4 @@ // !LANGUAGE: +InlineClasses -// IGNORE_BACKEND_FIR: JVM_IR inline class R(private val r: Int) { fun test() = object { diff --git a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/objectInInlineClassFun.kt b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/objectInInlineClassFun.kt index 7ff8227e318..2c827f8df27 100644 --- a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/objectInInlineClassFun.kt +++ b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/objectInInlineClassFun.kt @@ -1,5 +1,4 @@ // !LANGUAGE: +InlineClasses -// IGNORE_BACKEND_FIR: JVM_IR inline class R(private val r: Int) { fun test() = diff --git a/compiler/testData/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt b/compiler/testData/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt index 0ac213dcd66..834b1e5d824 100644 --- a/compiler/testData/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt +++ b/compiler/testData/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun box(): String { val d = 42.0 val c = 'C' diff --git a/compiler/testData/codegen/box/ir/anonymousObjectInForLoopIteratorAndBody.kt b/compiler/testData/codegen/box/ir/anonymousObjectInForLoopIteratorAndBody.kt index 66d815c5286..ec7c2b79840 100644 --- a/compiler/testData/codegen/box/ir/anonymousObjectInForLoopIteratorAndBody.kt +++ b/compiler/testData/codegen/box/ir/anonymousObjectInForLoopIteratorAndBody.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME diff --git a/compiler/testData/codegen/box/ir/anonymousObjectInsideElvis.kt b/compiler/testData/codegen/box/ir/anonymousObjectInsideElvis.kt index c1ff0233e96..3d6c72d17b2 100644 --- a/compiler/testData/codegen/box/ir/anonymousObjectInsideElvis.kt +++ b/compiler/testData/codegen/box/ir/anonymousObjectInsideElvis.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR fun box(): String { return (object { val r = "OK" } ?: null)!!.r } diff --git a/compiler/testData/codegen/box/jvm8/defaults/allCompatibility/interfaceExtension.kt b/compiler/testData/codegen/box/jvm8/defaults/allCompatibility/interfaceExtension.kt index 7b76cd88d14..c0e7c0e1250 100644 --- a/compiler/testData/codegen/box/jvm8/defaults/allCompatibility/interfaceExtension.kt +++ b/compiler/testData/codegen/box/jvm8/defaults/allCompatibility/interfaceExtension.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // !JVM_DEFAULT_MODE: all-compatibility // TARGET_BACKEND: JVM // JVM_TARGET: 1.8 diff --git a/compiler/testData/codegen/box/jvm8/defaults/compatibility/interfaceExtension.kt b/compiler/testData/codegen/box/jvm8/defaults/compatibility/interfaceExtension.kt index ceb229c0131..9948bb9bffb 100644 --- a/compiler/testData/codegen/box/jvm8/defaults/compatibility/interfaceExtension.kt +++ b/compiler/testData/codegen/box/jvm8/defaults/compatibility/interfaceExtension.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // !JVM_DEFAULT_MODE: compatibility // TARGET_BACKEND: JVM // JVM_TARGET: 1.8 diff --git a/compiler/testData/codegen/box/jvm8/defaults/noDefaultImpls/interfaceExtension.kt b/compiler/testData/codegen/box/jvm8/defaults/noDefaultImpls/interfaceExtension.kt index bf0de739196..cac4c651fe7 100644 --- a/compiler/testData/codegen/box/jvm8/defaults/noDefaultImpls/interfaceExtension.kt +++ b/compiler/testData/codegen/box/jvm8/defaults/noDefaultImpls/interfaceExtension.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // !JVM_DEFAULT_MODE: all // TARGET_BACKEND: JVM // JVM_TARGET: 1.8 diff --git a/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt b/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt index 460a7d25809..ef9b826ff07 100644 --- a/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt +++ b/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR class A { var a: String = "Fail" diff --git a/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt b/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt index 761d96ce3be..e5a27ccdbc4 100644 --- a/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt +++ b/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR class A( val a: String = object { override fun toString(): String = "OK" diff --git a/compiler/testData/codegen/box/objects/kt1737.kt b/compiler/testData/codegen/box/objects/kt1737.kt index 121e64d02ce..90afe5be813 100644 --- a/compiler/testData/codegen/box/objects/kt1737.kt +++ b/compiler/testData/codegen/box/objects/kt1737.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: JS_IR // TODO: muted automatically, investigate should it be ran for JS or not // IGNORE_BACKEND: JS, NATIVE diff --git a/compiler/testData/codegen/box/objects/kt2663_2.kt b/compiler/testData/codegen/box/objects/kt2663_2.kt index cbdded0e1ec..edb51b054b5 100644 --- a/compiler/testData/codegen/box/objects/kt2663_2.kt +++ b/compiler/testData/codegen/box/objects/kt2663_2.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: JS_IR // TODO: muted automatically, investigate should it be ran for JS or not // IGNORE_BACKEND: JS, NATIVE diff --git a/compiler/testData/codegen/box/objects/kt2822.kt b/compiler/testData/codegen/box/objects/kt2822.kt index 0318145aaac..740aaf1698c 100644 --- a/compiler/testData/codegen/box/objects/kt2822.kt +++ b/compiler/testData/codegen/box/objects/kt2822.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR open class A { fun foo() = "OK" } diff --git a/compiler/testData/codegen/box/topLevelPrivate/privateInInlineNested.kt b/compiler/testData/codegen/box/topLevelPrivate/privateInInlineNested.kt index bfe6b954ee3..2f43f6e7930 100644 --- a/compiler/testData/codegen/box/topLevelPrivate/privateInInlineNested.kt +++ b/compiler/testData/codegen/box/topLevelPrivate/privateInInlineNested.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR package test private val prop = "O"