[Fir2Ir] Introduce testing with IrFakeOverrideBuilder
^KT-61514
This commit is contained in:
committed by
Space Team
parent
bf9cae6410
commit
91e96e9f31
+54328
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,7 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// MODULE: lib
|
||||
// FILE: JavaAnn.java
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WITH_REFLECT
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// FIR_DUMP
|
||||
// DUMP_IR
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// FIR_DUMP
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
|
||||
annotation class Ann(@Ann(1) val e: Int)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// WITH_STDLIB
|
||||
// WITH_REFLECT
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// FIR_DUMP
|
||||
// DUMP_IR
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_BACKEND: WASM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: lib1
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// IGNORE_BACKEND: WASM
|
||||
// WITH_STDLIB
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||
|
||||
// MODULE: lib1
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
import java.util.HashSet
|
||||
|
||||
interface A : Set<String>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// SKIP_JDK6
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
Vendored
+1
@@ -2,6 +2,7 @@
|
||||
// FE 1.0 incorrectly resolves reference `Some::foo` (KT-45315)
|
||||
// DONT_TARGET_EXACT_BACKEND: WASM
|
||||
// WASM_MUTE_REASON: Wasm box test does not support disabling only K1 mode with IGNORE_BACKEND directive
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// ISSUE: KT-55909
|
||||
// DUMP_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// IGNORE_BACKEND: WASM
|
||||
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
||||
|
||||
interface A : Set<String>
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
abstract class A : AbstractMutableList<Int>()
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// FILE: B.java
|
||||
public abstract class B<E> extends A<E> implements L<E> {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// FILE: removeAtBridgeClashWithJava.kt
|
||||
|
||||
abstract class AJALI : JavaAbstractList<Int>()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: lib
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: lib
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
|
||||
fun <T> select(a: T, b: T) : T = a
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND_K1: ANY
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// K1_STATUS: java.lang.AssertionError: There is still an unbound symbol after generation of IR module <main>
|
||||
|
||||
fun <T> select(a: T, b: T) : T = a
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// ISSUE: KT-51194
|
||||
|
||||
// MODULE: coreLib_1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_BACKEND: WASM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||
|
||||
// MODULE: lib
|
||||
// FILE: l.kt
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// MODULE: m1
|
||||
// FILE: m1/THash.java
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// DUMP_IR
|
||||
// FULL_JDK
|
||||
// WITH_REFLECT
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// ISSUE: KT-59550
|
||||
|
||||
// FILE: Intermediate.java
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// ISSUE: KT-59550 (related)
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// MODULE: m1
|
||||
// FILE: Base.kt
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// ISSUE: KT-59550
|
||||
|
||||
// FILE: Intermediate.java
|
||||
|
||||
Vendored
+2
@@ -1,5 +1,7 @@
|
||||
// ISSUE: KT-55828
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
|
||||
interface MyCollection<out E1> {
|
||||
fun foo(): E1
|
||||
val bar: E1
|
||||
|
||||
Vendored
+2
@@ -1,5 +1,7 @@
|
||||
// ISSUE: KT-55828
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
|
||||
interface MyCollection {
|
||||
fun foo(): String
|
||||
val bar: String
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||
class ArrayDeque<E> : AbstractMutableList<E> {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// MODULE: lib
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61543
|
||||
// FILE: lib.kt
|
||||
|
||||
// KT-41765
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// Field VS property: case 4.1
|
||||
// See KT-50082
|
||||
// DUMP_IR
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// FULL_JDK
|
||||
// ISSUE: KT-45584
|
||||
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// ISSUE: KT-45584
|
||||
|
||||
// FILE: PlaceholderExceptionSupport.java
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// WITH_STDLIB
|
||||
// ISSUE: KT-56538
|
||||
|
||||
|
||||
Vendored
+1
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// FILE: javapackage/PackagePrivateGrandparentInterface.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// SKIP_JDK6
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// FULL_JDK
|
||||
// WITH_STDLIB
|
||||
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// java.lang.NoSuchMethodError: java.util.TreeMap.remove
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// WITH_STDLIB
|
||||
// FILE: Fn.java
|
||||
public interface Fn<T, R> {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// WITH_STDLIB
|
||||
// FILE: Fn.java
|
||||
public interface Fn<T, R> {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// WITH_STDLIB
|
||||
// DUMP_IR
|
||||
// DUMP_CFG
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// RENDERER_CFG_LEVELS
|
||||
|
||||
class FlyweightCapableTreeStructure
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// WITH_STDLIB
|
||||
|
||||
// binary representation of fractional part of phi = (sqrt(5) - 1) / 2
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
import java.util.AbstractMap
|
||||
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// ISSUE: KT-57655
|
||||
// !LANGUAGE: +ImplicitSignedToUnsignedIntegerConversion
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||
// ALLOW_KOTLIN_PACKAGE
|
||||
// WITH_STDLIB
|
||||
// DUMP_IR
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// MODULE: lib
|
||||
// FILE: A.java
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
// MODULE: lib
|
||||
// FILE: A.java
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||
|
||||
// MODULE: lib
|
||||
// FILE: A.java
|
||||
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* 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.test.backend.ir
|
||||
|
||||
import org.jetbrains.kotlin.test.WrappedException
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION
|
||||
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
import org.jetbrains.kotlin.test.services.moduleStructure
|
||||
|
||||
class CodegenWithIrFakeOverrideGeneratorSuppressor(testServices: TestServices) : AfterAnalysisChecker(testServices) {
|
||||
override fun check(failedAssertions: List<WrappedException>) {
|
||||
if (!mainDirectiveEnabled) return
|
||||
if (failedAssertions.isEmpty() && suppressDirectiveEnabled) {
|
||||
testServices.assertions.fail {
|
||||
"Looks like this test can be unmuted. Remove $IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION directive "
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun suppressIfNeeded(failedAssertions: List<WrappedException>): List<WrappedException> {
|
||||
return when {
|
||||
!mainDirectiveEnabled -> failedAssertions
|
||||
suppressDirectiveEnabled -> emptyList()
|
||||
else -> failedAssertions
|
||||
}
|
||||
}
|
||||
|
||||
private val mainDirectiveEnabled: Boolean
|
||||
get() = ENABLE_IR_FAKE_OVERRIDE_GENERATION in testServices.moduleStructure.allDirectives
|
||||
|
||||
private val suppressDirectiveEnabled: Boolean
|
||||
get() = IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION in testServices.moduleStructure.allDirectives
|
||||
}
|
||||
+1
-1
@@ -39,7 +39,7 @@ class IrActualizerAndPluginsFacade(
|
||||
inputArtifact.irPluginContext.symbolTable as SymbolTable, // TODO: it's strange place to get it.
|
||||
inputArtifact.irMangler,
|
||||
mapOf(module.name to module.friendDependencies.map { it.moduleName }),
|
||||
useIrFakeOverrideBuilder = false,
|
||||
useIrFakeOverrideBuilder = CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION in module.directives,
|
||||
)
|
||||
inputArtifact.irActualizerResult = result
|
||||
}
|
||||
|
||||
+13
@@ -242,6 +242,19 @@ object CodegenTestDirectives : SimpleDirectivesContainer() {
|
||||
Ignore exceptions in AbstractFirLoadK2CompiledKotlin tests
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
val ENABLE_IR_FAKE_OVERRIDE_GENERATION by directive(
|
||||
description = """
|
||||
Enables fake-override generation in FIR2IR using IR f/o generator. KT-61514
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
// String to allow and enforce issue id. Value is not actually used.
|
||||
val IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION by stringDirective(
|
||||
description = """
|
||||
Suppresses test if $ENABLE_IR_FAKE_OVERRIDE_GENERATION directive enabled
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
fun extractIgnoredDirectiveForTargetBackend(
|
||||
|
||||
+2
-4
@@ -10,10 +10,7 @@ import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.constant.EvaluatedConstTracker
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
@@ -172,6 +169,7 @@ fun ModuleCompilerAnalyzedOutput.convertToJsIr(
|
||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||
inlineConstTracker = null,
|
||||
allowNonCachedDeclarations = false,
|
||||
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr()
|
||||
)
|
||||
|
||||
return convertToIr(
|
||||
|
||||
+2
-1
@@ -105,7 +105,8 @@ class Fir2IrJvmResultsConverter(
|
||||
evaluatedConstTracker = compilerConfiguration
|
||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||
inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER],
|
||||
allowNonCachedDeclarations = false
|
||||
allowNonCachedDeclarations = false,
|
||||
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr(),
|
||||
)
|
||||
val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.result.outputs.single().convertToIr(
|
||||
fir2IrExtensions,
|
||||
|
||||
+10
@@ -5,16 +5,26 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.frontend.fir
|
||||
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.platform.isCommon
|
||||
import org.jetbrains.kotlin.platform.isJs
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||
import org.jetbrains.kotlin.test.model.BackendKinds
|
||||
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||
import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
/**
|
||||
* In multi-platform projects this option is passed to IrActualizer instead
|
||||
* @see [IrActualizerAndPluginsFacade]
|
||||
*/
|
||||
fun TestModule.shouldUseIrFakeOverrideBuilderInConvertToIr() =
|
||||
CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION in directives &&
|
||||
!languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)
|
||||
|
||||
class Fir2IrResultsConverter(
|
||||
testServices: TestServices
|
||||
) : Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>(
|
||||
|
||||
+2
-1
@@ -167,7 +167,8 @@ fun ModuleCompilerAnalyzedOutput.convertToWasmIr(
|
||||
evaluatedConstTracker = configuration
|
||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||
inlineConstTracker = null,
|
||||
allowNonCachedDeclarations = false
|
||||
allowNonCachedDeclarations = false,
|
||||
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr(),
|
||||
)
|
||||
|
||||
return convertToIr(
|
||||
|
||||
+15
@@ -14,8 +14,10 @@ import org.jetbrains.kotlin.test.builders.configureFirHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
import org.jetbrains.kotlin.test.backend.ir.CodegenWithIrFakeOverrideGeneratorSuppressor
|
||||
import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler
|
||||
import org.jetbrains.kotlin.test.builders.configureIrHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.configureFirParser
|
||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
||||
@@ -90,3 +92,16 @@ open class AbstractFirLightTreeBlackBoxCodegenTest : AbstractFirBlackBoxCodegenT
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiBlackBoxCodegenTest : AbstractFirBlackBoxCodegenTestBase(FirParser.Psi)
|
||||
|
||||
open class AbstractFirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTest : AbstractFirLightTreeBlackBoxCodegenTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
defaultDirectives {
|
||||
+ENABLE_IR_FAKE_OVERRIDE_GENERATION
|
||||
}
|
||||
|
||||
useAfterAnalysisCheckers(::CodegenWithIrFakeOverrideGeneratorSuppressor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -279,6 +279,10 @@ fun generateJUnit5CompilerTests(args: Array<String>, mainClassName: String?) {
|
||||
model("codegen/box")
|
||||
}
|
||||
|
||||
testClass<AbstractFirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTest> {
|
||||
model("codegen/box")
|
||||
}
|
||||
|
||||
testClass<AbstractFirLightTreeBlackBoxCodegenTest>("FirLightTreeBlackBoxModernJdkCodegenTestGenerated") {
|
||||
model("codegen/boxModernJdk")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user