diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/AnnotatedMethod.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/AnnotatedMethod.txt index f2b0f0c4783..2600068da08 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/AnnotatedMethod.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/AnnotatedMethod.txt @@ -1,5 +1,5 @@ public open class AnnotatedMethod : R|kotlin/Any| { - public open fun f(): R|kotlin/Unit| + @R|kotlin/Deprecated|(message = String(Deprecated in Java)) public open fun f(): R|kotlin/Unit| public constructor(): R|test/AnnotatedMethod| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/EnumArgumentWithCustomToString.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/EnumArgumentWithCustomToString.txt index 7adc2cc6795..a0635fa7702 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/EnumArgumentWithCustomToString.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/EnumArgumentWithCustomToString.txt @@ -19,7 +19,7 @@ public final annotation class EnumAnno : R|kotlin/Annotation| { } public final class EnumArgumentWithCustomToString : R|kotlin/Any| { - public final fun annotated(): R|kotlin/Unit| + @R|test/EnumAnno|(value = R|test/E.CAKE|()) @R|test/EnumArrayAnno|(value = (R|test/E.CAKE|(), R|test/E.CAKE|())) public final fun annotated(): R|kotlin/Unit| public constructor(): R|test/EnumArgumentWithCustomToString| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/MultiDimensionalArrayMethod.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/MultiDimensionalArrayMethod.txt index 6ce56472857..4aa687eec30 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/MultiDimensionalArrayMethod.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/MultiDimensionalArrayMethod.txt @@ -7,7 +7,7 @@ public final annotation class Anno : R|kotlin/Annotation| { } public abstract interface T : R|kotlin/Any| { - public abstract fun foo(): R|kotlin/Array>>| + @R|test/Anno|(s = String(foo)) public abstract fun foo(): R|kotlin/Array>>| public abstract val bar: R|kotlin/Array>| public get(): R|kotlin/Array>| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/EnumArgument.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/EnumArgument.txt index d663dc82291..32aa99a52b8 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/EnumArgument.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/EnumArgument.txt @@ -7,7 +7,7 @@ public final annotation class Anno : R|kotlin/Annotation| { } public final class Class : R|kotlin/Any| { - public final fun foo(): R|kotlin/Unit| + @R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|()) public final fun foo(): R|kotlin/Unit| public final var bar: R|kotlin/Int| public get(): R|kotlin/Int| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/Function.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/Function.txt index b374289dc15..d432cf768ee 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/Function.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/Function.txt @@ -4,7 +4,7 @@ public final annotation class Anno : R|kotlin/Annotation| { } public final class Class : R|kotlin/Any| { - public final fun foo(): R|kotlin/Unit| + @R|test/Anno|() public final fun foo(): R|kotlin/Unit| public constructor(): R|test/Class| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classes/NestedAnnotation.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classes/NestedAnnotation.txt index 6cc0d3a8eca..974d3c9679d 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classes/NestedAnnotation.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classes/NestedAnnotation.txt @@ -9,7 +9,7 @@ public final class A : R|kotlin/Any| { } @R|test/A.Anno|() public final class B : R|kotlin/Any| { - public final fun f(): R|kotlin/Unit| + @R|test/A.Anno|() public final fun f(): R|kotlin/Unit| public constructor(): R|test/B| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArgument.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArgument.txt index 9cdb69dbdf8..b7394bffcba 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArgument.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArgument.txt @@ -1,4 +1,4 @@ -public final fun foo(): R|kotlin/Unit| +@R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|()) public final fun foo(): R|kotlin/Unit| public final annotation class Anno : R|kotlin/Annotation| { public final val t: R|java/lang/annotation/ElementType| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArrayArgument.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArrayArgument.txt index 63a245ce5d8..68b75abade8 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArrayArgument.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/EnumArrayArgument.txt @@ -1,6 +1,6 @@ -public final fun baz(): R|kotlin/Unit| +@R|test/Anno|(t = ()) public final fun baz(): R|kotlin/Unit| -public final fun foo(): R|kotlin/Unit| +@R|test/Anno|(t = (R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.FIELD|())) public final fun foo(): R|kotlin/Unit| public final annotation class Anno : R|kotlin/Annotation| { public final val t: R|kotlin/Array| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/Function.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/Function.txt index 30ed424ed0d..368dd815c1d 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/Function.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/Function.txt @@ -1,4 +1,4 @@ -public final fun function(): R|kotlin/Unit| +@R|test/Anno|() public final fun function(): R|kotlin/Unit| public final annotation class Anno : R|kotlin/Annotation| { public constructor(): R|test/Anno| diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/StringArrayArgument.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/StringArrayArgument.txt index 0fc95adf14a..edc3813aefe 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/StringArrayArgument.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/packageMembers/StringArrayArgument.txt @@ -1,6 +1,6 @@ -public final fun baz(): R|kotlin/Unit| +@R|test/Anno|(t = ()) public final fun baz(): R|kotlin/Unit| -public final fun foo(): R|kotlin/Unit| +@R|test/Anno|(t = (String(live), String(long))) public final fun foo(): R|kotlin/Unit| public final annotation class Anno : R|kotlin/Annotation| { public final val t: R|kotlin/Array| diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmBinaryAnnotationDeserializer.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmBinaryAnnotationDeserializer.kt index 43ca60b8d1a..4d0db9d8eb3 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmBinaryAnnotationDeserializer.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmBinaryAnnotationDeserializer.kt @@ -17,8 +17,10 @@ import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement import org.jetbrains.kotlin.load.kotlin.MemberSignature import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.NameResolver +import org.jetbrains.kotlin.metadata.deserialization.TypeTable import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf +import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.protobuf.MessageLite @@ -33,6 +35,7 @@ class JvmBinaryAnnotationDeserializer( private data class MemberAnnotations(val memberAnnotations: Map>) private enum class CallableKind { + FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER } @@ -42,36 +45,55 @@ class JvmBinaryAnnotationDeserializer( return annotations.map { deserializeAnnotation(it, nameResolver) } } + override fun loadFunctionAnnotations( + containerSource: DeserializedContainerSource?, + functionProto: ProtoBuf.Function, + nameResolver: NameResolver, + typeTable: TypeTable + ): List { + val signature = getCallableSignature(functionProto, nameResolver, typeTable, CallableKind.FUNCTION) ?: return emptyList() + return findJvmBinaryClassAndLoadMemberAnnotations(containerSource, signature) + } + override fun loadPropertyGetterAnnotations( containerSource: DeserializedContainerSource?, propertyProto: ProtoBuf.Property, nameResolver: NameResolver, + typeTable: TypeTable, getterFlags: Int ): List { - val signature = getCallableSignature(propertyProto, nameResolver, CallableKind.PROPERTY_GETTER) ?: return emptyList() - val kotlinClass = containerSource?.toKotlinJvmBinaryClass() ?: return emptyList() - return loadMemberAnnotations(kotlinClass).memberAnnotations[signature] ?: emptyList() + val signature = getCallableSignature(propertyProto, nameResolver, typeTable, CallableKind.PROPERTY_GETTER) ?: return emptyList() + return findJvmBinaryClassAndLoadMemberAnnotations(containerSource, signature) } override fun loadPropertySetterAnnotations( containerSource: DeserializedContainerSource?, propertyProto: ProtoBuf.Property, nameResolver: NameResolver, + typeTable: TypeTable, setterFlags: Int ): List { - val signature = getCallableSignature(propertyProto, nameResolver, CallableKind.PROPERTY_SETTER) ?: return emptyList() - val kotlinClass = containerSource?.toKotlinJvmBinaryClass() ?: return emptyList() - return loadMemberAnnotations(kotlinClass).memberAnnotations[signature] ?: emptyList() + val signature = getCallableSignature(propertyProto, nameResolver, typeTable, CallableKind.PROPERTY_SETTER) ?: return emptyList() + return findJvmBinaryClassAndLoadMemberAnnotations(containerSource, signature) } private fun getCallableSignature( proto: MessageLite, nameResolver: NameResolver, + typeTable: TypeTable, kind: CallableKind ): MemberSignature? { return when (proto) { // TODO: ProtoBuf.Constructor - // TODO: ProtoBuf.Function + is ProtoBuf.Function -> { + val signature = JvmProtoBufUtil.getJvmMethodSignature(proto, nameResolver, typeTable) ?: return null + // TODO: Investigate why annotations for accessors affect resolution, resulting in dangling type parameter. + // regressions: Fir2IrTextTest.Declarations.test*LevelProperties + if (signature.name.startsWith("get") || signature.name.startsWith("set")) { + return null + } + MemberSignature.fromJvmMemberSignature(signature) + } is ProtoBuf.Property -> { val signature = proto.getExtensionOrNull(JvmProtoBuf.propertySignature) ?: return null when (kind) { @@ -80,12 +102,22 @@ class JvmBinaryAnnotationDeserializer( CallableKind.PROPERTY_SETTER -> if (signature.hasSetter()) MemberSignature.fromMethod(nameResolver, signature.setter) else null // TODO: PROPERTY + else -> + null } } else -> null } } + private fun findJvmBinaryClassAndLoadMemberAnnotations( + containerSource: DeserializedContainerSource?, + memberSignature: MemberSignature + ): List { + val kotlinClass = containerSource?.toKotlinJvmBinaryClass() ?: return emptyList() + return loadMemberAnnotations(kotlinClass).memberAnnotations[memberSignature] ?: emptyList() + } + private fun DeserializedContainerSource.toKotlinJvmBinaryClass(): KotlinJvmBinaryClass? = when (this) { is JvmPackagePartSource -> this.knownJvmBinaryClass diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/AbstractAnnotationDeserializer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/AbstractAnnotationDeserializer.kt index f73d0588852..7758f0cb1bf 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/AbstractAnnotationDeserializer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/AbstractAnnotationDeserializer.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf.Annotation.Argument.Value.Type.* import org.jetbrains.kotlin.metadata.deserialization.Flags import org.jetbrains.kotlin.metadata.deserialization.NameResolver +import org.jetbrains.kotlin.metadata.deserialization.TypeTable import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.serialization.deserialization.getClassId @@ -45,7 +46,12 @@ abstract class AbstractAnnotationDeserializer( return annotations.map { deserializeAnnotation(it, nameResolver) } } - fun loadFunctionAnnotations(functionProto: ProtoBuf.Function, nameResolver: NameResolver): List { + open fun loadFunctionAnnotations( + containerSource: DeserializedContainerSource?, + functionProto: ProtoBuf.Function, + nameResolver: NameResolver, + typeTable: TypeTable + ): List { if (!Flags.HAS_ANNOTATIONS.get(functionProto.flags)) return emptyList() val annotations = functionProto.getExtension(protocol.functionAnnotation).orEmpty() return annotations.map { deserializeAnnotation(it, nameResolver) } @@ -61,6 +67,7 @@ abstract class AbstractAnnotationDeserializer( containerSource: DeserializedContainerSource?, propertyProto: ProtoBuf.Property, nameResolver: NameResolver, + typeTable: TypeTable, getterFlags: Int ): List { if (!Flags.HAS_ANNOTATIONS.get(getterFlags)) return emptyList() @@ -72,6 +79,7 @@ abstract class AbstractAnnotationDeserializer( containerSource: DeserializedContainerSource?, propertyProto: ProtoBuf.Property, nameResolver: NameResolver, + typeTable: TypeTable, setterFlags: Int ): List { if (!Flags.HAS_ANNOTATIONS.get(setterFlags)) return emptyList() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt index 51c9e1ec9b7..b0d87c768d4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt @@ -196,7 +196,9 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { isGetter = true status = FirDeclarationStatusImpl(visibility, modality) annotations += - c.annotationDeserializer.loadPropertyGetterAnnotations(c.containerSource, proto, local.nameResolver, getterFlags) + c.annotationDeserializer.loadPropertyGetterAnnotations( + c.containerSource, proto, local.nameResolver, local.typeTable, getterFlags + ) this.symbol = FirPropertyAccessorSymbol() } } else { @@ -218,7 +220,9 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { isGetter = false status = FirDeclarationStatusImpl(visibility, modality) annotations += - c.annotationDeserializer.loadPropertySetterAnnotations(c.containerSource, proto, local.nameResolver, setterFlags) + c.annotationDeserializer.loadPropertySetterAnnotations( + c.containerSource, proto, local.nameResolver, local.typeTable, setterFlags + ) this.symbol = FirPropertyAccessorSymbol() valueParameters += proto.setterValueParameter.let { val parameterFlags = if (it.hasFlags()) it.flags else 0 @@ -316,7 +320,8 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir } valueParameters += local.memberDeserializer.valueParameters(proto.valueParameterList) - annotations += local.annotationDeserializer.loadFunctionAnnotations(proto, local.nameResolver) + annotations += + c.annotationDeserializer.loadFunctionAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable) this.containerSource = c.containerSource } if (proto.hasContract()) { diff --git a/compiler/testData/codegen/box/constants/comparisonFalse.kt b/compiler/testData/codegen/box/constants/comparisonFalse.kt index f6165a3d5c4..f4b8303dde0 100644 --- a/compiler/testData/codegen/box/constants/comparisonFalse.kt +++ b/compiler/testData/codegen/box/constants/comparisonFalse.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME fun foo(): Array { diff --git a/compiler/testData/codegen/box/constants/comparisonTrue.kt b/compiler/testData/codegen/box/constants/comparisonTrue.kt index b819a8d37bb..eb1d02c5c20 100644 --- a/compiler/testData/codegen/box/constants/comparisonTrue.kt +++ b/compiler/testData/codegen/box/constants/comparisonTrue.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME fun foo(): Array { diff --git a/compiler/testData/codegen/box/ranges/contains/generated/arrayIndices.kt b/compiler/testData/codegen/box/ranges/contains/generated/arrayIndices.kt index d937d735a5e..9bfdbcf833f 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/arrayIndices.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/arrayIndices.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/charSequenceIndices.kt b/compiler/testData/codegen/box/ranges/contains/generated/charSequenceIndices.kt index 508bc4e14b7..3199d40930e 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/charSequenceIndices.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/charSequenceIndices.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/collectionIndices.kt b/compiler/testData/codegen/box/ranges/contains/generated/collectionIndices.kt index 0530891e4cc..8da68230056 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/collectionIndices.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/collectionIndices.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/doubleRangeLiteral.kt b/compiler/testData/codegen/box/ranges/contains/generated/doubleRangeLiteral.kt index fe004b53e1d..ad0844ad2a4 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/doubleRangeLiteral.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/doubleRangeLiteral.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/floatRangeLiteral.kt b/compiler/testData/codegen/box/ranges/contains/generated/floatRangeLiteral.kt index 2056c465601..2380c7987ee 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/floatRangeLiteral.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/floatRangeLiteral.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/intRangeLiteral.kt b/compiler/testData/codegen/box/ranges/contains/generated/intRangeLiteral.kt index c33ca8442ef..4c75741975c 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/intRangeLiteral.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/intRangeLiteral.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/intUntil.kt b/compiler/testData/codegen/box/ranges/contains/generated/intUntil.kt index 6961f62af4e..79e71daba97 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/intUntil.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/intUntil.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/longRangeLiteral.kt b/compiler/testData/codegen/box/ranges/contains/generated/longRangeLiteral.kt index f933814c044..56e3af6dba3 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/longRangeLiteral.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/longRangeLiteral.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/generated/longUntil.kt b/compiler/testData/codegen/box/ranges/contains/generated/longUntil.kt index e9e31982274..aed6049bff5 100644 --- a/compiler/testData/codegen/box/ranges/contains/generated/longUntil.kt +++ b/compiler/testData/codegen/box/ranges/contains/generated/longUntil.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // Auto-generated by GenerateInRangeExpressionTestData. Do not edit! // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/ranges/contains/inNonMatchingRange.kt b/compiler/testData/codegen/box/ranges/contains/inNonMatchingRange.kt index 5a936b4cefc..53c3c656980 100644 --- a/compiler/testData/codegen/box/ranges/contains/inNonMatchingRange.kt +++ b/compiler/testData/codegen/box/ranges/contains/inNonMatchingRange.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME fun inInt(x: Long): Boolean { diff --git a/compiler/testData/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt b/compiler/testData/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt index f2fa11c6b4a..afd2d675855 100644 --- a/compiler/testData/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt +++ b/compiler/testData/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS_IR_ES6 // TODO: muted automatically, investigate should it be ran for JS or not diff --git a/compiler/testData/codegen/box/ranges/contains/inUntil.kt b/compiler/testData/codegen/box/ranges/contains/inUntil.kt index 170c3dc947e..126dd80728c 100644 --- a/compiler/testData/codegen/box/ranges/contains/inUntil.kt +++ b/compiler/testData/codegen/box/ranges/contains/inUntil.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME fun box(): String { diff --git a/compiler/testData/codegen/box/reflection/call/callPrivateJavaMethod.kt b/compiler/testData/codegen/box/reflection/call/callPrivateJavaMethod.kt index e78ea4d61a8..6d902e9ab75 100644 --- a/compiler/testData/codegen/box/reflection/call/callPrivateJavaMethod.kt +++ b/compiler/testData/codegen/box/reflection/call/callPrivateJavaMethod.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/codegen/box/reflection/createAnnotation/callByKotlin.kt b/compiler/testData/codegen/box/reflection/createAnnotation/callByKotlin.kt index e3fd47fa656..51b0ca24a0b 100644 --- a/compiler/testData/codegen/box/reflection/createAnnotation/callByKotlin.kt +++ b/compiler/testData/codegen/box/reflection/createAnnotation/callByKotlin.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/codegen/box/reflection/createAnnotation/callJava.kt b/compiler/testData/codegen/box/reflection/createAnnotation/callJava.kt index 2cd0c2a1998..75dcdc49bbe 100644 --- a/compiler/testData/codegen/box/reflection/createAnnotation/callJava.kt +++ b/compiler/testData/codegen/box/reflection/createAnnotation/callJava.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/codegen/box/reflection/createAnnotation/callKotlin.kt b/compiler/testData/codegen/box/reflection/createAnnotation/callKotlin.kt index 016b62c929c..3e2e883f374 100644 --- a/compiler/testData/codegen/box/reflection/createAnnotation/callKotlin.kt +++ b/compiler/testData/codegen/box/reflection/createAnnotation/callKotlin.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/testData/codegen/box/reflection/mapping/lateinitProperty.kt b/compiler/testData/codegen/box/reflection/mapping/lateinitProperty.kt index 1e7d15dac46..7347b7a05a0 100644 --- a/compiler/testData/codegen/box/reflection/mapping/lateinitProperty.kt +++ b/compiler/testData/codegen/box/reflection/mapping/lateinitProperty.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_REFLECT