From e8aa05928d4bf8ab16b2cee174025dd9efc64075 Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Mon, 15 Jan 2024 17:33:06 +0100 Subject: [PATCH] [FIR2IR] Unconditionally disable `linkViaSignatures` on JVM It was an experimental compilation mode that we don't need anymore. KT-64809 --- .../arguments/K2JVMCompilerArguments.kt | 4 +- .../kotlin/config/JVMConfigurationKeys.java | 2 +- .../kotlin/fir/backend/Fir2IrConfiguration.kt | 2 +- .../directives/LanguageSettingsDirectives.kt | 2 +- compiler/testData/cli/jvm/extraHelp.out | 2 + ...amWithReceiverMavenProjectImportHandler.kt | 2 +- .../codegen/box/fir/linkViaSignatures.kt | 2 +- .../mainFunctionManglingInJvm.fir.sig.kt.txt | 41 +++++++++++++++++++ .../declarations/mainFunctionManglingInJvm.kt | 3 ++ .../expressions/badInlinedBreakContinue.kt | 6 --- .../AbstractMutableMap.fir.sig.kt.txt | 18 +++----- .../IntArrayAsVararg.fir.sig.kt.txt | 17 ++++++++ .../ir/irText/firProblems/IntArrayAsVararg.kt | 3 ++ .../frontend/fir/Fir2IrJvmResultsConverter.kt | 15 +------ ...actCompileKotlinAgainstInlineKotlinTest.kt | 4 +- .../test/runners/ir/AbstractIrTextTest.kt | 4 +- .../JvmEnvironmentConfigurator.kt | 4 +- 17 files changed, 88 insertions(+), 43 deletions(-) create mode 100644 compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/IntArrayAsVararg.fir.sig.kt.txt diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt index b214ad37aea..4c695caa2ed 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt @@ -785,7 +785,9 @@ See KT-45671 for more details.""" @Argument( value = "-Xlink-via-signatures", description = """Link JVM IR symbols via signatures instead of descriptors. -This mode is slower, but it can be useful for troubleshooting problems with the JVM IR backend.""" +This mode is slower, but it can be useful for troubleshooting problems with the JVM IR backend. +This option is deprecated and will be deleted in future versions. +It has no effect when -language-version is 2.0 or higher.""" ) var linkViaSignatures = false set(value) { diff --git a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java index 132c2827f4e..55296bed061 100644 --- a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java +++ b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java @@ -155,7 +155,7 @@ public class JVMConfigurationKeys { CompilerConfigurationKey.create("Validate generated JVM bytecode"); public static final CompilerConfigurationKey LINK_VIA_SIGNATURES = - CompilerConfigurationKey.create("Link JVM IR symbols via signatures, instead of by descriptors"); + CompilerConfigurationKey.create("Link JVM IR symbols via signatures, instead of by descriptors on the K1 frontend"); public static final CompilerConfigurationKey ENABLE_DEBUG_MODE = CompilerConfigurationKey.create("Enable debug mode"); diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt index acb173bf739..845a4df6c4b 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt @@ -56,7 +56,7 @@ class Fir2IrConfiguration private constructor( Fir2IrConfiguration( languageVersionSettings = compilerConfiguration.languageVersionSettings, diagnosticReporter = diagnosticReporter, - linkViaSignatures = compilerConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), + linkViaSignatures = false, evaluatedConstTracker = compilerConfiguration.putIfAbsent( CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create(), diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt index d90924e5d78..ce152fde12e 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt @@ -99,7 +99,7 @@ object LanguageSettingsDirectives : SimpleDirectivesContainer() { val USE_TYPE_TABLE by directive("Use type table in metadata serialization") val NO_NEW_JAVA_ANNOTATION_TARGETS by directive("Do not generate Java annotation targets TYPE_USE/TYPE_PARAMETER for Kotlin annotation classes with Kotlin targets TYPE/TYPE_PARAMETER") val OLD_INNER_CLASSES_LOGIC by directive("Use old logic for generation of InnerClasses attributes") - val LINK_VIA_SIGNATURES by directive("Use linkage via signatures instead of descriptors / FIR") + val LINK_VIA_SIGNATURES_K1 by directive("Use linkage via signatures instead of descriptors on the K1 frontend") val ENABLE_JVM_IR_INLINER by directive("Enable inlining on IR, instead of inlining on bytecode") val GENERATE_PROPERTY_ANNOTATIONS_METHODS by directive( description = "Enables corresponding analysis flag (JvmAnalysisFlags.generatePropertyAnnotationsMethods)" diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index b3b543bc7ca..837f719c621 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -83,6 +83,8 @@ where advanced options include: -Xlambdas=class Generate lambdas as explicit classes. -Xlink-via-signatures Link JVM IR symbols via signatures instead of descriptors. This mode is slower, but it can be useful for troubleshooting problems with the JVM IR backend. + This option is deprecated and will be deleted in future versions. + It has no effect when -language-version is 2.0 or higher. -Xno-call-assertions Don't generate not-null assertions for arguments of platform types. -Xno-kotlin-nothing-value-exception Don't use KotlinNothingValueException, which has been available since 1.4. diff --git a/compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt b/compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt index bf7633bf458..08e1f6d96ed 100644 --- a/compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt +++ b/compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt @@ -1,5 +1,5 @@ // WITH_STDLIB -// LINK_VIA_SIGNATURES +// LINK_VIA_SIGNATURES_K1 // DUMP_SIGNATURES // MODULE: maven diff --git a/compiler/testData/codegen/box/fir/linkViaSignatures.kt b/compiler/testData/codegen/box/fir/linkViaSignatures.kt index b116c806580..0dc02d97b6f 100644 --- a/compiler/testData/codegen/box/fir/linkViaSignatures.kt +++ b/compiler/testData/codegen/box/fir/linkViaSignatures.kt @@ -1,6 +1,6 @@ // WITH_STDLIB // TARGET_BACKEND: JVM_IR -// LINK_VIA_SIGNATURES +// LINK_VIA_SIGNATURES_K1 class Class interface Interface diff --git a/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.fir.sig.kt.txt b/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.fir.sig.kt.txt new file mode 100644 index 00000000000..1da8ba2ba24 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.fir.sig.kt.txt @@ -0,0 +1,41 @@ +// FILE: a.kt + +// CHECK JVM_IR: +// Mangled name: #main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%a.kt +// Public signature: /main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit + +// FILE: b.kt + +// CHECK JVM_IR: +// Mangled name: #main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%b.kt +// Public signature: /main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit + +// FILE: c.kt +package foo + +// CHECK JVM_IR: +// Mangled name: foo#main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%c.kt +// Public signature: foo/main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit + +// FILE: d.kt +package foo + +// CHECK JVM_IR: +// Mangled name: foo#main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%d.kt +// Public signature: foo/main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit diff --git a/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.kt b/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.kt index ff09b2a0eb0..554ce4064b3 100644 --- a/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.kt +++ b/compiler/testData/ir/irText/declarations/mainFunctionManglingInJvm.kt @@ -4,6 +4,9 @@ // FIR_IDENTICAL // WITH_STDLIB +// SEPARATE_SIGNATURE_DUMP_FOR_K2 +// ^ The main function has a different mangled name when it's computed from its K1 descriptor in K/JVM. + // FILE: a.kt fun main() { println("main() in a.kt") diff --git a/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt b/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt index e5c98dcac31..016e6271e19 100644 --- a/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt +++ b/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt @@ -6,12 +6,6 @@ // WITH_STDLIB // SKIP_KLIB_TEST -// IGNORE_BACKEND_K2: JVM_IR -// ^^^ The IrErrorCallExpression inside the body of test1() function is dumped in a different way on JVM K1 and JVM K2. -// That is because `IrErrorCallExpression.description` includes a signature of a local lambda, which is mangled -// differently on K1 and K2. This is not a problem since signatures for local entities do not participate in IR-linkage. -// But the test needs to be muted. - inline fun foo(block: () -> Unit) { block() } inline fun bar(block1: () -> Unit, noinline block2: () -> Unit) { diff --git a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt index 1ab88d6fe9e..5b4e37d9d95 100644 --- a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt +++ b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt @@ -36,10 +36,8 @@ class MyMap : AbstractMutableMap { // Mangled name: MyMap#computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? // Mangled name for the signature by IR: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? // Mangled name for the signature by Frontend: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? - // Public signature by IR: /MyMap.computeIfPresent|-2673672788318360066[0] - // Public signature by IR debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? - // Public signature by Frontend: /MyMap.computeIfPresent|-4313180944690406140[0] - // Public signature by Frontend debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature: /MyMap.computeIfPresent|-2673672788318360066[0] + // Public signature debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? /* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction): V? // CHECK JVM_IR: @@ -88,20 +86,16 @@ class MyMap : AbstractMutableMap { // Mangled name: MyMap#merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? // Mangled name for the signature by IR: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? // Mangled name for the signature by Frontend: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? - // Public signature by IR: /MyMap.merge|5136195963180492586[0] - // Public signature by IR debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? - // Public signature by Frontend: /MyMap.merge|-7730033017111273031[0] - // Public signature by Frontend debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature: /MyMap.merge|5136195963180492586[0] + // Public signature debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? /* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability (V & Any), p2: @EnhancedNullability BiFunction): V? // CHECK: // Mangled name: MyMap#putAll(kotlin.collections.Map{EnhancedNullability}){} // Mangled name for the signature by IR: putAll(kotlin.collections.Map{EnhancedNullability}){} // Mangled name for the signature by Frontend: putAll(kotlin.collections.Map{EnhancedNullability}){} - // Public signature by IR: /MyMap.putAll|8252374948943605914[0] - // Public signature by IR debug description: putAll(kotlin.collections.Map{EnhancedNullability}){} - // Public signature by Frontend: /MyMap.putAll|2145725647041437129[0] - // Public signature by Frontend debug description: putAll(kotlin.collections.Map{EnhancedNullability}){} + // Public signature: /MyMap.putAll|8252374948943605914[0] + // Public signature debug description: putAll(kotlin.collections.Map{EnhancedNullability}){} /* fake */ override fun putAll(p0: @EnhancedNullability Map): Unit // CHECK JVM_IR: diff --git a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.fir.sig.kt.txt b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.fir.sig.kt.txt new file mode 100644 index 00000000000..3b87eaac7ac --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.fir.sig.kt.txt @@ -0,0 +1,17 @@ +// CHECK: +// Mangled name: #consumeVarargs(kotlin.IntArray...){} +// Public signature: /consumeVarargs|2702777436513705083[0] +// Public signature debug description: consumeVarargs(kotlin.IntArray...){} +fun consumeVarargs(vararg arr: Int): Unit + +// CHECK JVM_IR: +// Mangled name: #main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%IntArrayAsVararg.kt +// Public signature: /main|-4284757841571462650[0] +// Public signature debug description: main(){} +// CHECK JS_IR NATIVE: +// Mangled name: #main(){} +// Public signature: /main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit diff --git a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt index 1d71c3c6067..59362a741e2 100644 --- a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt +++ b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt @@ -2,6 +2,9 @@ // WITH_STDLIB // ISSUE: KT-60312 +// SEPARATE_SIGNATURE_DUMP_FOR_K2 +// ^ The main function has a different mangled name when it's computed from its K1 descriptor in K/JVM. + fun main() { consumeVarargs(1, 2) consumeVarargs(arr = intArrayOf(41, 42)) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt index eaca6c8eb3d..14b260aa619 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt @@ -11,24 +11,15 @@ import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace -import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.codegen.ClassBuilderFactories import org.jetbrains.kotlin.codegen.state.GenerationState -import org.jetbrains.kotlin.config.CommonConfigurationKeys -import org.jetbrains.kotlin.config.JVMConfigurationKeys -import org.jetbrains.kotlin.constant.EvaluatedConstTracker -import org.jetbrains.kotlin.container.get import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration import org.jetbrains.kotlin.fir.backend.jvm.* import org.jetbrains.kotlin.fir.pipeline.convertToIrAndActualize import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir -import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.resolve.CompilerEnvironment -import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.model.BackendKinds @@ -77,9 +68,7 @@ class Fir2IrJvmResultsConverter( val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG) - val generateSignatures = compilerConfigurationProvider.getCompilerConfiguration(module) - .getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES) - val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(generateSignatures), FirJvmKotlinMangler()) + val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(false), FirJvmKotlinMangler()) val diagnosticReporter = DiagnosticReporterFactory.createReporter() val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module) @@ -89,7 +78,7 @@ class Fir2IrJvmResultsConverter( fir2IrExtensions, fir2IrConfiguration, module.irGenerationExtensions(testServices), - signatureComposerForJvmFir2Ir(generateSignatures), + signatureComposerForJvmFir2Ir(false), irMangler, FirJvmKotlinMangler(), FirJvmVisibilityConverter, diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt index 28599d3dfbc..a68b95bf7f3 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND_MULTI_MODULE import org.jetbrains.kotlin.test.FirParser import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.SERIALIZE_IR -import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_SIGNATURES +import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_SIGNATURES_K1 import org.jetbrains.kotlin.test.directives.configureFirParser import org.jetbrains.kotlin.test.directives.model.ValueDirective import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter @@ -91,7 +91,7 @@ open class AbstractIrCompileKotlinAgainstInlineKotlinTest : private fun TestConfigurationBuilder.configureForSerialization() { defaultDirectives { SERIALIZE_IR.with(JvmSerializeIrMode.INLINE) - +LINK_VIA_SIGNATURES + +LINK_VIA_SIGNATURES_K1 } configureIrHandlersStep { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt index 3ab58417ece..8f21afadb10 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_SIGNATURE import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives -import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_SIGNATURES +import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_SIGNATURES_K1 import org.jetbrains.kotlin.test.directives.configureFirParser import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler @@ -55,7 +55,7 @@ abstract class AbstractIrTextTest