diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt index f9380dfdad1..a363c1864d6 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt @@ -52,6 +52,12 @@ inline fun buildField(b: IrFieldBuilder.() -> Unit) = buildField() } +inline fun IrDeclarationContainer.addField(b: IrFieldBuilder.() -> Unit) = + buildField(b).also { field -> + field.parent = this + declarations.add(field) + } + fun IrPropertyBuilder.buildProperty(): IrProperty { val wrappedDescriptor = WrappedPropertyDescriptor() return IrPropertyImpl( diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt index 604db87c65f..e8d919f2138 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt @@ -34,6 +34,7 @@ interface JvmLoweredDeclarationOrigin : IrDeclarationOrigin { object SYNTHETIC_METHOD_FOR_PROPERTY_ANNOTATIONS : IrDeclarationOriginImpl("SYNTHETIC_METHOD_FOR_PROPERTY_ANNOTATIONS", isSynthetic = true) object GENERATED_PROPERTY_REFERENCE : IrDeclarationOriginImpl("GENERATED_PROPERTY_REFERENCE", isSynthetic = true) + object GENERATED_SAM_IMPLEMENTATION : IrDeclarationOriginImpl("GENERATED_SAM_IMPLEMENTATION", isSynthetic = true) } interface JvmLoweredStatementOrigin : IrStatementOrigin { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt index 6a039e8a8f6..bcc107c0543 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt @@ -82,6 +82,7 @@ val jvmPhases = namedIrFilePhase( makePatchParentsPhase(1) then jvmLocalDeclarationsPhase then + singleAbstractMethodPhase then callableReferencePhase then functionNVarargInvokePhase then diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SingleAbstractMethodLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SingleAbstractMethodLowering.kt new file mode 100644 index 00000000000..f5647436df0 --- /dev/null +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SingleAbstractMethodLowering.kt @@ -0,0 +1,156 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.backend.jvm.lower + +import org.jetbrains.kotlin.backend.common.* +import org.jetbrains.kotlin.backend.common.ir.copyTo +import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor +import org.jetbrains.kotlin.backend.common.lower.createIrBuilder +import org.jetbrains.kotlin.backend.common.lower.irBlock +import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase +import org.jetbrains.kotlin.backend.common.serialization.fqNameSafe +import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.ir.builders.* +import org.jetbrains.kotlin.ir.builders.declarations.* +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl +import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.types.classifierOrFail +import org.jetbrains.kotlin.ir.types.toKotlinType +import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid +import org.jetbrains.kotlin.load.java.sam.SamConstructorDescriptor +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.types.KotlinType +import org.jetbrains.kotlin.util.OperatorNameConventions + +internal val singleAbstractMethodPhase = makeIrFilePhase( + ::SingleAbstractMethodLowering, + name = "SingleAbstractMethod", + description = "Replace SAM conversions with instances of interface-implementing classes" +) + +class SingleAbstractMethodLowering(val context: CommonBackendContext) : ClassLoweringPass { + override fun lower(irClass: IrClass) { + // TODO use `IrType`s; unfortunately, they are currently not comparable. + // (Can't use class symbols here, we want type parameters as well.) + val implementations = mutableMapOf, IrClass>() + irClass.transformChildrenVoid(object : IrElementTransformerVoidWithContext() { + override fun visitCall(expression: IrCall): IrExpression { + if (expression.symbol.owner.descriptor !is SamConstructorDescriptor) + return super.visitCall(expression) + // Direct construction of an interface: + // Runnable { print("Hello, World!") } + return createInstance(expression.type, expression.getValueArgument(0)!!.transform(this, null)) + } + + override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression { + if (expression.operator != IrTypeOperator.SAM_CONVERSION) + return super.visitTypeOperator(expression) + // Implicit conversion to an interface: + // val a: (Runnable) -> Unit = { it.run() } // pretend this is a Java method + // val b: () -> Unit = { print("Hello, World!") } + // a(b) + return createInstance(expression.typeOperand, expression.argument.transform(this, null)) + } + + // Replace a SAM-conversion of a callable object with an instance of an appropriate implementation. + private fun createInstance(superType: IrType, invokable: IrExpression): IrExpression { + val implementation = implementations.getOrPut(superType.toKotlinType() to invokable.type.toKotlinType()) { + createClass(superType, invokable.type) + } + // Running in the class context, so empty scope means this is a field/anonymous initializer. + val scopeOwnerSymbol = currentScope?.scope?.scopeOwnerSymbol ?: irClass.symbol + return context.createIrBuilder(scopeOwnerSymbol).irBlock(invokable, null, superType) { + // TODO if invokable is a callable reference, avoid materializing it? + if (superType.isNullable() && invokable.type.isNullable()) { + val invokableVariable = scope.createTemporaryVariable(invokable) + val instance = irCall(implementation.constructors.single()).apply { putValueArgument(0, irGet(invokableVariable)) } + +invokableVariable + +irIfNull(superType, irGet(invokableVariable), irNull(), instance) + } else { + +irCall(implementation.constructors.single()).apply { putValueArgument(0, invokable) } + } + } + } + + // Construct a class that wraps an invokable object into an implementation of an interface: + // class sam$n(private val invokable: F) : Interface() { override fun method(...) = invokable(...) } + private fun createClass(superType: IrType, invokableType: IrType): IrClass { + val invokableClass = invokableType.classifierOrFail.owner as IrClass + val invoke = invokableClass.functions.single { it.name == OperatorNameConventions.INVOKE } + + val superClass = superType.classifierOrFail.owner as IrClass + val superConstructor = if (superClass.kind != ClassKind.INTERFACE) + superClass.constructors.single { it.valueParameters.size == 0 } + else + context.irBuiltIns.anyClass.owner.constructors.single { it.valueParameters.size == 0 } + val superMethod = superClass.functions.single { it.modality == Modality.ABSTRACT } + + val superClassName = superClass.fqNameSafe.pathSegments().joinToString("_") { it.toString() } + val subclass = buildClass { + // TODO this is not the name some tests (e.g. kt11519) expect + name = Name.identifier("sam\$${superClassName}\$${implementations.size}") + origin = JvmLoweredDeclarationOrigin.GENERATED_SAM_IMPLEMENTATION + }.apply { + createImplicitParameterDeclarationWithWrappedDescriptor() + parent = irClass + // TODO convert all type parameters to upper bounds? See the kt11696 test. + superTypes += superType + } + + val invokableField = subclass.addField { + name = Name.identifier("invokable") + type = invokableType + origin = subclass.origin + visibility = Visibilities.PRIVATE + } + + subclass.addConstructor { + returnType = subclass.defaultType + origin = subclass.origin + isPrimary = true + }.apply { + addValueParameter { + name = invokableField.name + type = invokableType + index = 0 + origin = subclass.origin + } + body = context.createIrBuilder(symbol).irBlockBody(startOffset, endOffset) { + +irDelegatingConstructorCall(superConstructor) + +irSetField(irGet(subclass.thisReceiver!!), invokableField, irGet(valueParameters[0])) + +IrInstanceInitializerCallImpl(startOffset, endOffset, superClass.symbol, context.irBuiltIns.unitType) + } + } + + subclass.addFunction { + name = superMethod.name + returnType = superMethod.returnType + visibility = superMethod.visibility + origin = subclass.origin + }.apply { + overriddenSymbols.add(superMethod.symbol) + dispatchReceiverParameter = subclass.thisReceiver!!.copyTo(this) + superMethod.valueParameters.mapTo(valueParameters) { it.copyTo(this) } + body = context.createIrBuilder(symbol).irBlockBody(startOffset, endOffset) { + +irReturn(irCall(invoke.symbol).apply { + dispatchReceiver = irGetField(irGet(subclass.thisReceiver!!), invokableField) + valueParameters.forEachIndexed { i, parameter -> putValueArgument(i, irGet(parameter)) } + }) + } + } + + return subclass + } + }) + irClass.declarations.addAll(implementations.values) + } +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt index 789ed70888e..8f30d861769 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt @@ -379,7 +379,7 @@ private fun StatementGenerator.pregenerateValueArguments(call: CallBuilder, reso generateSamConversionForValueArgumentsIfRequired(call, resolvedCall.resultingDescriptor) } -private fun StatementGenerator.generateSamConversionForValueArgumentsIfRequired(call: CallBuilder, originalDescriptor: CallableDescriptor) { +fun StatementGenerator.generateSamConversionForValueArgumentsIfRequired(call: CallBuilder, originalDescriptor: CallableDescriptor) { val underlyingDescriptor = context.extensions.samConversion.getOriginalForSamAdapter(originalDescriptor) ?: return val originalValueParameters = originalDescriptor.valueParameters diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt index 9c24d3692b4..d8222754a55 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt @@ -72,6 +72,7 @@ class AssignmentGenerator(statementGenerator: StatementGenerator) : StatementGen val opCall = statementGenerator.pregenerateCallReceivers(opResolvedCall) opCall.setExplicitReceiverValue(irLValue) opCall.irValueArgumentsByIndex[0] = ktRight.genExpr() + statementGenerator.generateSamConversionForValueArgumentsIfRequired(opCall, opResolvedCall.resultingDescriptor) val irOpCall = CallGenerator(statementGenerator).generateCall(ktExpression, opCall, origin) if (isSimpleAssignment) { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt index 177779dcddf..8f00ce025e6 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.inlineStatement import org.jetbrains.kotlin.ir.expressions.isAssignmentOperatorWithResult import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi2ir.generators.CallGenerator +import org.jetbrains.kotlin.psi2ir.generators.generateSamConversionForValueArgumentsIfRequired import org.jetbrains.kotlin.psi2ir.generators.pregenerateValueArgumentsUsing import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.calls.tasks.isDynamic @@ -98,8 +99,8 @@ class ArrayAccessAssignmentReceiver( return LValueWithGetterAndSetterCalls( callGenerator, descriptor, - { indexedGetCall()?.fillArrayAndIndexArguments(irArrayValue, indexedGetResolvedCall!!, ktExpressionToIrIndexValue) }, - { indexedSetCall()?.fillArrayAndIndexArguments(irArrayValue, indexedSetResolvedCall!!, ktExpressionToIrIndexValue) }, + { indexedGetCall()?.fillArguments(irArrayValue, indexedGetResolvedCall!!, ktExpressionToIrIndexValue, null) }, + { indexedSetCall()?.fillArguments(irArrayValue, indexedSetResolvedCall!!, ktExpressionToIrIndexValue, it) }, callGenerator.translateType(kotlinType), startOffset, endOffset, origin ) @@ -107,24 +108,22 @@ class ArrayAccessAssignmentReceiver( override fun assign(value: IrExpression): IrExpression { val call = indexedSetCall() ?: throw AssertionError("Array access without indexed-get call") - val ktExpressionToIrIndexExpression = ktIndexExpressions.zip(irIndexExpressions).toMap() - call.setExplicitReceiverValue(OnceExpressionValue(irArray)) - callGenerator.statementGenerator.pregenerateValueArgumentsUsing(call, indexedSetResolvedCall!!) { - ktExpressionToIrIndexExpression[it] - } - call.lastArgument = value + val ktExpressionToIrIndexExpression = ktIndexExpressions.zip(irIndexExpressions.map { OnceExpressionValue(it) }).toMap() + call.fillArguments(OnceExpressionValue(irArray), indexedSetResolvedCall!!, ktExpressionToIrIndexExpression, value) return callGenerator.generateCall(startOffset, endOffset, call, IrStatementOrigin.EQ) } - private fun CallBuilder.fillArrayAndIndexArguments( + private fun CallBuilder.fillArguments( arrayValue: IntermediateValue, resolvedCall: ResolvedCall, - ktExpressionToIrIndexValue: Map + ktExpressionToIrIndexValue: Map, + value: IrExpression? ) = apply { setExplicitReceiverValue(arrayValue) - callGenerator.statementGenerator.pregenerateValueArgumentsUsing(this, resolvedCall) { ktExpression -> ktExpressionToIrIndexValue[ktExpression]?.load() } + value?.let { lastArgument = it } + callGenerator.statementGenerator.generateSamConversionForValueArgumentsIfRequired(this, resolvedCall.resultingDescriptor) } } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt index 3d9d9423ef6..a289eb757ba 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt @@ -26,7 +26,7 @@ class LValueWithGetterAndSetterCalls( val callGenerator: CallGenerator, val descriptor: CallableDescriptor, val getterCall: () -> CallBuilder?, - val setterCall: () -> CallBuilder?, + val setterCall: (IrExpression) -> CallBuilder?, override val type: IrType, val startOffset: Int, val endOffset: Int, @@ -39,8 +39,7 @@ class LValueWithGetterAndSetterCalls( } override fun store(irExpression: IrExpression): IrExpression { - val call = setterCall() ?: throw AssertionError("No setter call for $descriptor") - call.irValueArgumentsByIndex[call.argumentsCount - 1] = irExpression + val call = setterCall(irExpression) ?: throw AssertionError("No setter call for $descriptor") return callGenerator.generateCall(startOffset, endOffset, call, origin) } diff --git a/compiler/testData/codegen/box/callableReference/function/sortListOfStrings.kt b/compiler/testData/codegen/box/callableReference/function/sortListOfStrings.kt index 4020f240869..07735f6b661 100644 --- a/compiler/testData/codegen/box/callableReference/function/sortListOfStrings.kt +++ b/compiler/testData/codegen/box/callableReference/function/sortListOfStrings.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME diff --git a/compiler/testData/codegen/box/javaInterop/notNullAssertions/functionAssertion.kt b/compiler/testData/codegen/box/javaInterop/notNullAssertions/functionAssertion.kt index 678cf1e3353..3dee7701f44 100644 --- a/compiler/testData/codegen/box/javaInterop/notNullAssertions/functionAssertion.kt +++ b/compiler/testData/codegen/box/javaInterop/notNullAssertions/functionAssertion.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // FILE: F.java import java.util.function.Function; diff --git a/compiler/testData/codegen/box/jdk/removeIf.kt b/compiler/testData/codegen/box/jdk/removeIf.kt index fda2d8fe0ca..17eb3f5578f 100644 --- a/compiler/testData/codegen/box/jdk/removeIf.kt +++ b/compiler/testData/codegen/box/jdk/removeIf.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // FULL_JDK // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/jdk/stream.kt b/compiler/testData/codegen/box/jdk/stream.kt index bcf092696e0..b9ad556b8e8 100644 --- a/compiler/testData/codegen/box/jdk/stream.kt +++ b/compiler/testData/codegen/box/jdk/stream.kt @@ -1,5 +1,4 @@ // JVM_TARGET: 1.8 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // FULL_JDK // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/jvm8/javaDefaults/samOnInterfaceWithDefaultMethod.kt b/compiler/testData/codegen/box/jvm8/javaDefaults/samOnInterfaceWithDefaultMethod.kt index 918be2ce2d9..81e39577a10 100644 --- a/compiler/testData/codegen/box/jvm8/javaDefaults/samOnInterfaceWithDefaultMethod.kt +++ b/compiler/testData/codegen/box/jvm8/javaDefaults/samOnInterfaceWithDefaultMethod.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // FILE: JavaCall.java diff --git a/compiler/testData/codegen/box/jvmStatic/propertyAccessorsCompanion.kt b/compiler/testData/codegen/box/jvmStatic/propertyAccessorsCompanion.kt index 494ac32275f..528dfc8718d 100644 --- a/compiler/testData/codegen/box/jvmStatic/propertyAccessorsCompanion.kt +++ b/compiler/testData/codegen/box/jvmStatic/propertyAccessorsCompanion.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/jvmStatic/propertyAccessorsObject.kt b/compiler/testData/codegen/box/jvmStatic/propertyAccessorsObject.kt index 0f5da8893b5..187b9a12929 100644 --- a/compiler/testData/codegen/box/jvmStatic/propertyAccessorsObject.kt +++ b/compiler/testData/codegen/box/jvmStatic/propertyAccessorsObject.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/sam/constructors/comparator.kt b/compiler/testData/codegen/box/sam/constructors/comparator.kt index 0ff9691f024..b6425b8e53a 100644 --- a/compiler/testData/codegen/box/sam/constructors/comparator.kt +++ b/compiler/testData/codegen/box/sam/constructors/comparator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME diff --git a/compiler/testData/codegen/box/sam/constructors/filenameFilter.kt b/compiler/testData/codegen/box/sam/constructors/filenameFilter.kt index 6b6f7fd9b47..81e835d7075 100644 --- a/compiler/testData/codegen/box/sam/constructors/filenameFilter.kt +++ b/compiler/testData/codegen/box/sam/constructors/filenameFilter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM import java.io.* diff --git a/compiler/testData/codegen/box/sam/constructors/kt16790.kt b/compiler/testData/codegen/box/sam/constructors/kt16790.kt index 716b04f498b..899a3da70fa 100644 --- a/compiler/testData/codegen/box/sam/constructors/kt16790.kt +++ b/compiler/testData/codegen/box/sam/constructors/kt16790.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM -// IGNORE_BACKEND: JVM_IR // SKIP_JDK6 // FULL_JDK diff --git a/compiler/testData/codegen/box/sam/constructors/kt19251.kt b/compiler/testData/codegen/box/sam/constructors/kt19251.kt index be70b806a5e..35948380cc2 100644 --- a/compiler/testData/codegen/box/sam/constructors/kt19251.kt +++ b/compiler/testData/codegen/box/sam/constructors/kt19251.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK diff --git a/compiler/testData/codegen/box/sam/constructors/kt19251_child.kt b/compiler/testData/codegen/box/sam/constructors/kt19251_child.kt index a1f15e2dd5a..bfbf4f59870 100644 --- a/compiler/testData/codegen/box/sam/constructors/kt19251_child.kt +++ b/compiler/testData/codegen/box/sam/constructors/kt19251_child.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK diff --git a/compiler/testData/codegen/box/sam/constructors/nonLiteralComparator.kt b/compiler/testData/codegen/box/sam/constructors/nonLiteralComparator.kt index e6e74aec759..4df997f35f9 100644 --- a/compiler/testData/codegen/box/sam/constructors/nonLiteralComparator.kt +++ b/compiler/testData/codegen/box/sam/constructors/nonLiteralComparator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME diff --git a/compiler/testData/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt b/compiler/testData/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt index 59b7fa224b3..362479fb553 100644 --- a/compiler/testData/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt +++ b/compiler/testData/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM import java.io.* diff --git a/compiler/testData/codegen/box/sam/constructors/nonLiteralRunnable.kt b/compiler/testData/codegen/box/sam/constructors/nonLiteralRunnable.kt index 74425111644..59818629db0 100644 --- a/compiler/testData/codegen/box/sam/constructors/nonLiteralRunnable.kt +++ b/compiler/testData/codegen/box/sam/constructors/nonLiteralRunnable.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM fun box(): String { diff --git a/compiler/testData/codegen/box/sam/constructors/nonTrivialRunnable.kt b/compiler/testData/codegen/box/sam/constructors/nonTrivialRunnable.kt index 8837c6439a5..23dd339127c 100644 --- a/compiler/testData/codegen/box/sam/constructors/nonTrivialRunnable.kt +++ b/compiler/testData/codegen/box/sam/constructors/nonTrivialRunnable.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM var result = "FAIL" diff --git a/compiler/testData/codegen/box/sam/constructors/runnable.kt b/compiler/testData/codegen/box/sam/constructors/runnable.kt index 90c3f37905b..7c4564f0b50 100644 --- a/compiler/testData/codegen/box/sam/constructors/runnable.kt +++ b/compiler/testData/codegen/box/sam/constructors/runnable.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM var result = "FAIL" diff --git a/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure1.kt b/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure1.kt index 9fbb1bb3cf5..1381931b9f1 100644 --- a/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure1.kt +++ b/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure1.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM fun box(): String { diff --git a/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure2.kt b/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure2.kt index a34a434aff5..15c2ff185e9 100644 --- a/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure2.kt +++ b/compiler/testData/codegen/box/sam/constructors/runnableAccessingClosure2.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM class Box(val s: String) { diff --git a/compiler/testData/codegen/box/sam/constructors/samWrappersDifferentFiles.kt b/compiler/testData/codegen/box/sam/constructors/samWrappersDifferentFiles.kt index 47a784acc46..a1adf5fb527 100644 --- a/compiler/testData/codegen/box/sam/constructors/samWrappersDifferentFiles.kt +++ b/compiler/testData/codegen/box/sam/constructors/samWrappersDifferentFiles.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/sam/constructors/sameWrapperClass.kt b/compiler/testData/codegen/box/sam/constructors/sameWrapperClass.kt index abdc02cb2f8..6cb9b4faa66 100644 --- a/compiler/testData/codegen/box/sam/constructors/sameWrapperClass.kt +++ b/compiler/testData/codegen/box/sam/constructors/sameWrapperClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: 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/sam/kt24825.kt b/compiler/testData/codegen/box/sam/kt24825.kt index a51fe3483a9..5f66288d32d 100644 --- a/compiler/testData/codegen/box/sam/kt24825.kt +++ b/compiler/testData/codegen/box/sam/kt24825.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/statics/protectedSamConstructor.kt b/compiler/testData/codegen/box/statics/protectedSamConstructor.kt index e77f960dfeb..cc67e0c70ec 100644 --- a/compiler/testData/codegen/box/statics/protectedSamConstructor.kt +++ b/compiler/testData/codegen/box/statics/protectedSamConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // FILE: JavaClass.java diff --git a/compiler/testData/codegen/boxAgainstJava/callableReference/kt16412.kt b/compiler/testData/codegen/boxAgainstJava/callableReference/kt16412.kt index d98211ea0c3..f4f582caca9 100644 --- a/compiler/testData/codegen/boxAgainstJava/callableReference/kt16412.kt +++ b/compiler/testData/codegen/boxAgainstJava/callableReference/kt16412.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: MFunction.java public interface MFunction { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt index d934b5651e8..d19569ddc10 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt index 36b03d1dd93..a05139d7960 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java // KT-5912 diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt index 35392bc7708..e392c8708c6 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaInterface.java interface JavaInterface { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/comparator.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/comparator.kt index c757d403237..f039b302190 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/comparator.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/comparator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/constructor.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/constructor.kt index e6450bebd41..17b6734a918 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/constructor.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/constructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/doubleLongParameters.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/doubleLongParameters.kt index 6f28369cdf3..b873863d384 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/doubleLongParameters.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/doubleLongParameters.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: GenericInterface.java interface GenericInterface { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/fileFilter.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/fileFilter.kt index a795812502f..30316e61a28 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/fileFilter.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/fileFilter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import java.io.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/genericSignature.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/genericSignature.kt index d91d4c0fa6a..45d70951104 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/genericSignature.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/genericSignature.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import java.util.Arrays; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedInKotlin.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedInKotlin.kt index ac72cfc0e3e..7f27754b2fd 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedInKotlin.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedInKotlin.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedOverriddenAdapter.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedOverriddenAdapter.kt index 3c7f3bc048a..e6d4aa7ac6d 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedOverriddenAdapter.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedOverriddenAdapter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // FILE: Super.java diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedSimple.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedSimple.kt index cabcac389a8..fe0d0d1d8a5 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedSimple.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/inheritedSimple.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: Sub.java class Super { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localClass.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localClass.kt index dfbe6c7d968..ac4f86668b9 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localClass.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructor.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructor.kt index 687c68daf13..d7436c4ec21 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructor.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructorWithFnValue.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructorWithFnValue.kt index 1d9c8095033..adee29d9fe9 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructorWithFnValue.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/localObjectConstructorWithFnValue.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt index 0751afbd84b..32205c28768 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralComparator.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralComparator.kt index 36578439e5f..7ff57f31114 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralComparator.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralComparator.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralInConstructor.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralInConstructor.kt index dc8ee53417b..2d15f8acc86 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralInConstructor.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralInConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralNull.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralNull.kt index d28c99716c4..3a379f8cbd1 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralNull.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralNull.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralRunnable.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralRunnable.kt index f3b1789e877..c7085e2ef61 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralRunnable.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralRunnable.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentPure.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentPure.kt index e4383222a15..22d19205acb 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentPure.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentPure.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentViaSimpleBinary.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentViaSimpleBinary.kt index 26100627704..f58a96c9272 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentViaSimpleBinary.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/augmentedAssignmentViaSimpleBinary.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import org.jetbrains.annotations.NotNull; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/binary.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/binary.kt index 29c0b334715..dc065243317 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/binary.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/binary.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/compareTo.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/compareTo.kt index a4a27da5c93..8010a965092 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/compareTo.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/compareTo.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/contains.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/contains.kt index ba76ae35b12..c091691ef1c 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/contains.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/contains.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/get.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/get.kt index 5b676d12517..a5a2e75de06 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/get.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/get.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/invoke.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/invoke.kt index f2c4197ac74..dbe29715072 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/invoke.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/invoke.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/legacyModOperator.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/legacyModOperator.kt index f641693d1d0..a9c495deb3b 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/legacyModOperator.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/legacyModOperator.kt @@ -1,5 +1,4 @@ // !LANGUAGE: -ProhibitOperatorMod -// IGNORE_BACKEND: JVM_IR // FILE: Java.java import org.jetbrains.annotations.NotNull; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiGetSet.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiGetSet.kt index 4058c35d746..cfc68e2234d 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiGetSet.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiGetSet.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiInvoke.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiInvoke.kt index 95a316ab63f..57789699b0f 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiInvoke.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/multiInvoke.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/set.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/set.kt index 7845d7ae4fa..86fb0a0e1e4 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/set.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/operators/set.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/protectedFromBase.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/protectedFromBase.kt index 58a9b085d03..005c322782e 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/protectedFromBase.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/protectedFromBase.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/severalSamParameters.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/severalSamParameters.kt index 2f050e645e4..b56b1b6e332 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/severalSamParameters.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/severalSamParameters.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/simplest.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/simplest.kt index ae46fed0735..31c251d821c 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/simplest.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/simplest.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/superInSecondaryConstructor.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/superInSecondaryConstructor.kt index abfe7ecce91..82f991af8bb 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/superInSecondaryConstructor.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/superInSecondaryConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: test.kt class Test : Base { constructor(f: () -> String) : super(f) diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/superconstructorWithClosure.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/superconstructorWithClosure.kt index a5d95440b70..e0624e72936 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/superconstructorWithClosure.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/superconstructorWithClosure.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: JavaClass.java class JavaClass { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfClass.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfClass.kt index cfa01eda0e0..a539ef61169 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfClass.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: WeirdComparator.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfMethod.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfMethod.kt index 4eab9ffed23..16b00976a01 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfMethod.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfMethod.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: WeirdComparator.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfOuterClass.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfOuterClass.kt index 08632ffc65b..330c8fdf11d 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfOuterClass.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/typeParameterOfOuterClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: WeirdComparator.java import java.util.*; diff --git a/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt b/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt index 8456d4b0035..bf96e14533b 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // FILE: Custom.java diff --git a/compiler/testData/codegen/boxAgainstJava/sam/kt4753.kt b/compiler/testData/codegen/boxAgainstJava/sam/kt4753.kt index 1783bee450d..83c3e40cfbe 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/kt4753.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/kt4753.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: Base.java interface Base { diff --git a/compiler/testData/codegen/boxAgainstJava/sam/kt4753_2.kt b/compiler/testData/codegen/boxAgainstJava/sam/kt4753_2.kt index e5e1250a274..9434c9a894e 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/kt4753_2.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/kt4753_2.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: ParamBase.java class ParamBase {} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt b/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt index bb55adc2dd2..c6ee83081fa 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // WITH_RUNTIME // FILE: JavaClass.java diff --git a/compiler/testData/codegen/boxAgainstJava/visibility/protectedAndPackage/protectedSuperMethod.kt b/compiler/testData/codegen/boxAgainstJava/visibility/protectedAndPackage/protectedSuperMethod.kt index 3c310ade568..330c6ebfeca 100644 --- a/compiler/testData/codegen/boxAgainstJava/visibility/protectedAndPackage/protectedSuperMethod.kt +++ b/compiler/testData/codegen/boxAgainstJava/visibility/protectedAndPackage/protectedSuperMethod.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: test/Foo.java package test; diff --git a/compiler/testData/codegen/boxInline/anonymousObject/sam/samOnCallSite.kt b/compiler/testData/codegen/boxInline/anonymousObject/sam/samOnCallSite.kt index 5c870ba31a1..a52059c540f 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/sam/samOnCallSite.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/sam/samOnCallSite.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: 1.kt // FULL_JDK diff --git a/compiler/testData/compileKotlinAgainstKotlin/jvm8/jvm8against6/jdk8Against6.kt b/compiler/testData/compileKotlinAgainstKotlin/jvm8/jvm8against6/jdk8Against6.kt index e9933b6e16c..a2b985bfd01 100644 --- a/compiler/testData/compileKotlinAgainstKotlin/jvm8/jvm8against6/jdk8Against6.kt +++ b/compiler/testData/compileKotlinAgainstKotlin/jvm8/jvm8against6/jdk8Against6.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // SKIP_JDK6 // FILE: A.kt import java.util.*