From 8e8de513ee4a368d58c4be0cf383a4a60bf65e0f Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Tue, 8 Aug 2023 16:00:08 +0200 Subject: [PATCH] [FIR] Introduce OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE diagnostic ^KT-60892 --- .../diagnostics/KtFirDataClassConverters.kt | 6 +++++ .../api/fir/diagnostics/KtFirDiagnostics.kt | 4 ++++ .../fir/diagnostics/KtFirDiagnosticsImpl.kt | 5 +++++ .../diagnostics/FirDiagnosticsList.kt | 2 ++ .../fir/analysis/diagnostics/FirErrors.kt | 1 + ...FirOptionalExpectationExpressionChecker.kt | 5 +++++ .../type/FirOptionalExpectationTypeChecker.kt | 5 +++++ .../diagnostics/FirErrorsDefaultMessages.kt | 5 +++++ .../k2/annotations/optionalExpectation.kt | 22 +++++++++++++------ .../removeExpectDeclarationsFromMetadata.kt | 14 ++++++++---- .../codegen/box/volatile/volatileBool.kt | 3 +-- .../codegen/box/volatile/volatileByte.kt | 3 +-- .../codegen/box/volatile/volatileDouble.kt | 3 +-- .../codegen/box/volatile/volatileFloat.kt | 3 +-- .../codegen/box/volatile/volatileGeneric.kt | 3 +-- .../codegen/box/volatile/volatileInt.kt | 3 +-- .../codegen/box/volatile/volatileLong.kt | 3 +-- .../codegen/box/volatile/volatileShort.kt | 3 +-- .../codegen/box/volatile/volatileString.kt | 3 +-- .../optionalExpectationDiagnostics.fir.kt | 9 +++++--- .../optionalExpectationDiagnostics.kt | 3 +++ .../ir/irText/firProblems/valueClassEquals.kt | 2 +- 22 files changed, 77 insertions(+), 33 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDataClassConverters.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDataClassConverters.kt index e87c4d132dd..d072d285dc1 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDataClassConverters.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDataClassConverters.kt @@ -3624,6 +3624,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert token, ) } + add(FirErrors.OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE) { firDiagnostic -> + OptionalDeclarationUsageInNonCommonSourceImpl( + firDiagnostic as KtPsiDiagnostic, + token, + ) + } add(FirErrors.INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION) { firDiagnostic -> InitializerRequiredForDestructuringDeclarationImpl( firDiagnostic as KtPsiDiagnostic, diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt index ba2fa4f79e5..fd9e54eefde 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt @@ -2537,6 +2537,10 @@ sealed interface KtFirDiagnostic : KtDiagnosticWithPsi { override val diagnosticClass get() = OptionalDeclarationOutsideOfAnnotationEntry::class } + interface OptionalDeclarationUsageInNonCommonSource : KtFirDiagnostic { + override val diagnosticClass get() = OptionalDeclarationUsageInNonCommonSource::class + } + interface InitializerRequiredForDestructuringDeclaration : KtFirDiagnostic { override val diagnosticClass get() = InitializerRequiredForDestructuringDeclaration::class } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt index 2351ee24a77..87cc6c6d49b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt @@ -3058,6 +3058,11 @@ internal class OptionalDeclarationOutsideOfAnnotationEntryImpl( token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptionalDeclarationOutsideOfAnnotationEntry +internal class OptionalDeclarationUsageInNonCommonSourceImpl( + firDiagnostic: KtPsiDiagnostic, + token: KtLifetimeToken, +) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptionalDeclarationUsageInNonCommonSource + internal class InitializerRequiredForDestructuringDeclarationImpl( firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt index 7d562fe9920..a713bed9a59 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt @@ -1238,6 +1238,8 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { } val OPTIONAL_DECLARATION_OUTSIDE_OF_ANNOTATION_ENTRY by error() + + val OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE by error() } val DESTRUCTING_DECLARATION by object : DiagnosticGroup("Destructuring declaration") { diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index 55eba6e89ce..1ccd0738e61 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -650,6 +650,7 @@ object FirErrors { val ACTUAL_TYPEALIAS_TO_SPECIAL_ANNOTATION by error1(SourceElementPositioningStrategies.TYPEALIAS_TYPE_REFERENCE) val ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT by warning3, FirBasedSymbol<*>, ExpectActualAnnotationsIncompatibilityType>(SourceElementPositioningStrategies.DECLARATION_NAME_ONLY) val OPTIONAL_DECLARATION_OUTSIDE_OF_ANNOTATION_ENTRY by error0() + val OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE by error0() // Destructuring declaration val INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION by error0() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptionalExpectationExpressionChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptionalExpectationExpressionChecker.kt index ab21518ec66..ec6c72ece1e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptionalExpectationExpressionChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptionalExpectationExpressionChecker.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.isOptionalAnnotationClass import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.expressions.FirFunctionCall +import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.references.toResolvedConstructorSymbol import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.fir.types.toRegularClassSymbol @@ -21,6 +22,10 @@ object FirOptionalExpectationExpressionChecker : FirFunctionCallChecker() { val declarationClass = constructorSymbol.resolvedReturnTypeRef.coneType.toRegularClassSymbol(context.session) ?: return if (!declarationClass.isOptionalAnnotationClass(context.session)) return + if (!context.session.moduleData.isCommon) { + reporter.reportOn(expression.source, FirErrors.OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE, context) + } + reporter.reportOn(expression.source, FirErrors.OPTIONAL_DECLARATION_OUTSIDE_OF_ANNOTATION_ENTRY, context) } } \ No newline at end of file diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/type/FirOptionalExpectationTypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/type/FirOptionalExpectationTypeChecker.kt index 7e7e1fb6abd..754435bc4fd 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/type/FirOptionalExpectationTypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/type/FirOptionalExpectationTypeChecker.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.diagnostics.reportOn import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.isOptionalAnnotationClass import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors +import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.coneTypeSafe @@ -23,6 +24,10 @@ object FirOptionalExpectationTypeChecker : FirTypeRefChecker() { val classSymbol = typeRef.coneTypeSafe()?.toRegularClassSymbol(context.session) ?: return if (!classSymbol.isOptionalAnnotationClass(context.session)) return + if (!context.session.moduleData.isCommon) { + reporter.reportOn(source, FirErrors.OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE, context) + } + val annotationContainer = context.annotationContainers.lastOrNull() if (annotationContainer?.annotations?.any { it.typeRef == typeRef } == true) return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt index 9f730da1186..ff2b3bc6a1a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessages.kt @@ -436,6 +436,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ONLY_ONE_CLASS_BO import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPERATOR_MODIFIER_REQUIRED import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPERATOR_RENAMED_ON_IMPORT import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPTIONAL_DECLARATION_OUTSIDE_OF_ANNOTATION_ENTRY +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPT_IN_ARGUMENT_IS_NOT_MARKER import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OPT_IN_IS_NOT_ENABLED @@ -1926,6 +1927,10 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() { OPTIONAL_DECLARATION_OUTSIDE_OF_ANNOTATION_ENTRY, "Declaration annotated with '@OptionalExpectation' can only be used inside an annotation entry" ) + map.put( + OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE, + "Declaration annotated with '@OptionalExpectation' can only be used in common module sources" + ) // Destructuring declaration map.put(INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION, "Initializer required for destructuring declaration") diff --git a/compiler/testData/codegen/box/multiplatform/k2/annotations/optionalExpectation.kt b/compiler/testData/codegen/box/multiplatform/k2/annotations/optionalExpectation.kt index 264cf98c066..f6a51da33b6 100644 --- a/compiler/testData/codegen/box/multiplatform/k2/annotations/optionalExpectation.kt +++ b/compiler/testData/codegen/box/multiplatform/k2/annotations/optionalExpectation.kt @@ -4,6 +4,7 @@ // WITH_STDLIB // MODULE: common +// TARGET_PLATFORM: Common // FILE: expected.kt package a @@ -24,17 +25,24 @@ package a actual annotation class A(actual val x: Int) -// MODULE: main(library) +// MODULE: common2 +// TARGET_PLATFORM: Common +// FILE: common2.kt + +package usage + +import a.B + +@B("OK") +@B.C(true) +fun ok() = "OK" + +// MODULE: main(library)()(common2) // FILE: main.kt package usage import a.A -import a.B @A(42) -@B("OK") -@B.C(true) -fun box(): String { - return "OK" -} +fun box(): String = ok() diff --git a/compiler/testData/codegen/box/multiplatform/k2/basic/removeExpectDeclarationsFromMetadata.kt b/compiler/testData/codegen/box/multiplatform/k2/basic/removeExpectDeclarationsFromMetadata.kt index f91e54c1c77..85a1d3b20bf 100644 --- a/compiler/testData/codegen/box/multiplatform/k2/basic/removeExpectDeclarationsFromMetadata.kt +++ b/compiler/testData/codegen/box/multiplatform/k2/basic/removeExpectDeclarationsFromMetadata.kt @@ -18,7 +18,7 @@ expect annotation class WithoutActual(val s: String) expect fun k(): String -// MODULE: platform()()(common) +// MODULE: lib()()(common) // FILE: lib.kt actual class C { @@ -29,9 +29,15 @@ actual annotation class WithActual(actual val x: Int) actual fun k() = "K" -// MODULE: main(platform) +// MODULE: common2 +// TARGET_PLATFORM: Common +// FILE: common2.kt + +@WithoutActual("OK") +fun ok() = C().o() + k() + +// MODULE: main(lib)()(common2) // FILE: main.kt @WithActual(42) -@WithoutActual("OK") -fun box() = C().o() + k() \ No newline at end of file +fun box() = ok() \ No newline at end of file diff --git a/compiler/testData/codegen/box/volatile/volatileBool.kt b/compiler/testData/codegen/box/volatile/volatileBool.kt index 38577af1ede..0d3c9e38799 100644 --- a/compiler/testData/codegen/box/volatile/volatileBool.kt +++ b/compiler/testData/codegen/box/volatile/volatileBool.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileByte.kt b/compiler/testData/codegen/box/volatile/volatileByte.kt index 7f9786a3ee7..4702949f8ef 100644 --- a/compiler/testData/codegen/box/volatile/volatileByte.kt +++ b/compiler/testData/codegen/box/volatile/volatileByte.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileDouble.kt b/compiler/testData/codegen/box/volatile/volatileDouble.kt index a02da6ebabe..a4eec560a52 100644 --- a/compiler/testData/codegen/box/volatile/volatileDouble.kt +++ b/compiler/testData/codegen/box/volatile/volatileDouble.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileFloat.kt b/compiler/testData/codegen/box/volatile/volatileFloat.kt index cc51e07c9c6..0d2abaa13d6 100644 --- a/compiler/testData/codegen/box/volatile/volatileFloat.kt +++ b/compiler/testData/codegen/box/volatile/volatileFloat.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileGeneric.kt b/compiler/testData/codegen/box/volatile/volatileGeneric.kt index a1ab3f9b0e0..851e4abfa66 100644 --- a/compiler/testData/codegen/box/volatile/volatileGeneric.kt +++ b/compiler/testData/codegen/box/volatile/volatileGeneric.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileInt.kt b/compiler/testData/codegen/box/volatile/volatileInt.kt index 6aeed4e3d67..46c5cafdf64 100644 --- a/compiler/testData/codegen/box/volatile/volatileInt.kt +++ b/compiler/testData/codegen/box/volatile/volatileInt.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileLong.kt b/compiler/testData/codegen/box/volatile/volatileLong.kt index d36b173afce..39a0ddc6816 100644 --- a/compiler/testData/codegen/box/volatile/volatileLong.kt +++ b/compiler/testData/codegen/box/volatile/volatileLong.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileShort.kt b/compiler/testData/codegen/box/volatile/volatileShort.kt index f045b9107c8..0b24a71d495 100644 --- a/compiler/testData/codegen/box/volatile/volatileShort.kt +++ b/compiler/testData/codegen/box/volatile/volatileShort.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/codegen/box/volatile/volatileString.kt b/compiler/testData/codegen/box/volatile/volatileString.kt index d2e16f0acc9..f0a3227c115 100644 --- a/compiler/testData/codegen/box/volatile/volatileString.kt +++ b/compiler/testData/codegen/box/volatile/volatileString.kt @@ -1,6 +1,5 @@ // WITH_STDLIB -// IGNORE_BACKEND: JS -// IGNORE_BACKEND_K1: WASM, JS_IR, JS_IR_ES6 +// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM // !API_VERSION: 1.9 import kotlin.concurrent.* diff --git a/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.fir.kt index 48bd558f02a..093e7ae1713 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.fir.kt @@ -29,11 +29,14 @@ expect class C { // MODULE: platform()()(common) // FILE: platform.kt -fun useInReturnType(): A? = null +@A +class D -annotation class AnotherAnnotation(val a: A) +fun useInReturnType(): A? = null -@AnotherAnnotation(A()) +annotation class AnotherAnnotation(val a: A) + +@AnotherAnnotation(A()) fun useInAnotherAnnotation() {} actual class C { diff --git a/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.kt b/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.kt index 16c14c6c26d..5b221ab386f 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/optionalExpectationDiagnostics.kt @@ -29,6 +29,9 @@ expect class C { // MODULE: platform()()(common) // FILE: platform.kt +@A +class D + fun useInReturnType(): A? = null annotation class AnotherAnnotation(val a: A) diff --git a/compiler/testData/ir/irText/firProblems/valueClassEquals.kt b/compiler/testData/ir/irText/firProblems/valueClassEquals.kt index a6048747064..ad55071d0b7 100644 --- a/compiler/testData/ir/irText/firProblems/valueClassEquals.kt +++ b/compiler/testData/ir/irText/firProblems/valueClassEquals.kt @@ -1,5 +1,5 @@ // SKIP_KLIB_TEST -// IGNORE_BACKEND_K1: JS_IR +// IGNORE_BACKEND: JS_IR // WITH_STDLIB // LANGUAGE: +ValueClasses