[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
|
// TARGET_BACKEND: JVM
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: JavaAnn.java
|
// FILE: JavaAnn.java
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
|
|
||||||
annotation class Ann(@Ann(1) val e: Int)
|
annotation class Ann(@Ann(1) val e: Int)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: WASM
|
// IGNORE_BACKEND: WASM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// MODULE: lib1
|
// MODULE: lib1
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// IGNORE_BACKEND: WASM
|
// IGNORE_BACKEND: WASM
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||||
|
|
||||||
// MODULE: lib1
|
// MODULE: lib1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
import java.util.HashSet
|
import java.util.HashSet
|
||||||
|
|
||||||
interface A : Set<String>
|
interface A : Set<String>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// !JVM_DEFAULT_MODE: all
|
// !JVM_DEFAULT_MODE: all
|
||||||
// SKIP_JDK6
|
// SKIP_JDK6
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|||||||
Vendored
+1
@@ -2,6 +2,7 @@
|
|||||||
// FE 1.0 incorrectly resolves reference `Some::foo` (KT-45315)
|
// FE 1.0 incorrectly resolves reference `Some::foo` (KT-45315)
|
||||||
// DONT_TARGET_EXACT_BACKEND: WASM
|
// DONT_TARGET_EXACT_BACKEND: WASM
|
||||||
// WASM_MUTE_REASON: Wasm box test does not support disabling only K1 mode with IGNORE_BACKEND directive
|
// 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
|
// ISSUE: KT-55909
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_BACKEND: WASM
|
// IGNORE_BACKEND: WASM
|
||||||
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
||||||
|
|
||||||
interface A : Set<String>
|
interface A : Set<String>
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
abstract class A : AbstractMutableList<Int>()
|
abstract class A : AbstractMutableList<Int>()
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// FILE: J.java
|
// FILE: J.java
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// FILE: B.java
|
// FILE: B.java
|
||||||
public abstract class B<E> extends A<E> implements L<E> {
|
public abstract class B<E> extends A<E> implements L<E> {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// FILE: removeAtBridgeClashWithJava.kt
|
// FILE: removeAtBridgeClashWithJava.kt
|
||||||
|
|
||||||
abstract class AJALI : JavaAbstractList<Int>()
|
abstract class AJALI : JavaAbstractList<Int>()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
|
|
||||||
fun <T> select(a: T, b: T) : T = a
|
fun <T> select(a: T, b: T) : T = a
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_K1: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// DUMP_IR
|
// 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>
|
// 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
|
fun <T> select(a: T, b: T) : T = a
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// ISSUE: KT-51194
|
// ISSUE: KT-51194
|
||||||
|
|
||||||
// MODULE: coreLib_1
|
// MODULE: coreLib_1
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: WASM
|
// IGNORE_BACKEND: WASM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61384
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: l.kt
|
// FILE: l.kt
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// MODULE: m1
|
// MODULE: m1
|
||||||
// FILE: m1/THash.java
|
// FILE: m1/THash.java
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// ISSUE: KT-59550
|
// ISSUE: KT-59550
|
||||||
|
|
||||||
// FILE: Intermediate.java
|
// FILE: Intermediate.java
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// ISSUE: KT-59550 (related)
|
// ISSUE: KT-59550 (related)
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// MODULE: m1
|
// MODULE: m1
|
||||||
// FILE: Base.kt
|
// FILE: Base.kt
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// ISSUE: KT-59550
|
// ISSUE: KT-59550
|
||||||
|
|
||||||
// FILE: Intermediate.java
|
// FILE: Intermediate.java
|
||||||
|
|||||||
Vendored
+2
@@ -1,5 +1,7 @@
|
|||||||
// ISSUE: KT-55828
|
// ISSUE: KT-55828
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
|
|
||||||
interface MyCollection<out E1> {
|
interface MyCollection<out E1> {
|
||||||
fun foo(): E1
|
fun foo(): E1
|
||||||
val bar: E1
|
val bar: E1
|
||||||
|
|||||||
Vendored
+2
@@ -1,5 +1,7 @@
|
|||||||
// ISSUE: KT-55828
|
// ISSUE: KT-55828
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
|
|
||||||
interface MyCollection {
|
interface MyCollection {
|
||||||
fun foo(): String
|
fun foo(): String
|
||||||
val bar: String
|
val bar: String
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||||
class ArrayDeque<E> : AbstractMutableList<E> {
|
class ArrayDeque<E> : AbstractMutableList<E> {
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61543
|
||||||
// FILE: lib.kt
|
// FILE: lib.kt
|
||||||
|
|
||||||
// KT-41765
|
// KT-41765
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// IGNORE_BACKEND_K1: JVM_IR
|
// IGNORE_BACKEND_K1: JVM_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// Field VS property: case 4.1
|
// Field VS property: case 4.1
|
||||||
// See KT-50082
|
// See KT-50082
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// ISSUE: KT-45584
|
// ISSUE: KT-45584
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// ISSUE: KT-45584
|
// ISSUE: KT-45584
|
||||||
|
|
||||||
// FILE: PlaceholderExceptionSupport.java
|
// FILE: PlaceholderExceptionSupport.java
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// ISSUE: KT-56538
|
// ISSUE: KT-56538
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
@@ -1,5 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// FILE: javapackage/PackagePrivateGrandparentInterface.java
|
// FILE: javapackage/PackagePrivateGrandparentInterface.java
|
||||||
|
|
||||||
package javapackage;
|
package javapackage;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// SKIP_JDK6
|
// SKIP_JDK6
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// !JVM_DEFAULT_MODE: all-compatibility
|
// !JVM_DEFAULT_MODE: all-compatibility
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// !JVM_DEFAULT_MODE: all
|
// !JVM_DEFAULT_MODE: all
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// java.lang.NoSuchMethodError: java.util.TreeMap.remove
|
// java.lang.NoSuchMethodError: java.util.TreeMap.remove
|
||||||
// IGNORE_BACKEND: ANDROID
|
// IGNORE_BACKEND: ANDROID
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FILE: Fn.java
|
// FILE: Fn.java
|
||||||
public interface Fn<T, R> {
|
public interface Fn<T, R> {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FILE: Fn.java
|
// FILE: Fn.java
|
||||||
public interface Fn<T, R> {
|
public interface Fn<T, R> {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
// DUMP_CFG
|
// DUMP_CFG
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// RENDERER_CFG_LEVELS
|
// RENDERER_CFG_LEVELS
|
||||||
|
|
||||||
class FlyweightCapableTreeStructure
|
class FlyweightCapableTreeStructure
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// binary representation of fractional part of phi = (sqrt(5) - 1) / 2
|
// binary representation of fractional part of phi = (sqrt(5) - 1) / 2
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
import java.util.AbstractMap
|
import java.util.AbstractMap
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// ISSUE: KT-57655
|
// ISSUE: KT-57655
|
||||||
// !LANGUAGE: +ImplicitSignedToUnsignedIntegerConversion
|
// !LANGUAGE: +ImplicitSignedToUnsignedIntegerConversion
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
|
||||||
// ALLOW_KOTLIN_PACKAGE
|
// ALLOW_KOTLIN_PACKAGE
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// DUMP_IR
|
// DUMP_IR
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: A.java
|
// FILE: A.java
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: A.java
|
// FILE: A.java
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
|
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61370
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: A.java
|
// 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.irPluginContext.symbolTable as SymbolTable, // TODO: it's strange place to get it.
|
||||||
inputArtifact.irMangler,
|
inputArtifact.irMangler,
|
||||||
mapOf(module.name to module.friendDependencies.map { it.moduleName }),
|
mapOf(module.name to module.friendDependencies.map { it.moduleName }),
|
||||||
useIrFakeOverrideBuilder = false,
|
useIrFakeOverrideBuilder = CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION in module.directives,
|
||||||
)
|
)
|
||||||
inputArtifact.irActualizerResult = result
|
inputArtifact.irActualizerResult = result
|
||||||
}
|
}
|
||||||
|
|||||||
+13
@@ -242,6 +242,19 @@ object CodegenTestDirectives : SimpleDirectivesContainer() {
|
|||||||
Ignore exceptions in AbstractFirLoadK2CompiledKotlin tests
|
Ignore exceptions in AbstractFirLoadK2CompiledKotlin tests
|
||||||
""".trimIndent()
|
""".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(
|
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.backend.common.serialization.signature.IdSignatureDescriptor
|
||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.constant.EvaluatedConstTracker
|
import org.jetbrains.kotlin.constant.EvaluatedConstTracker
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
@@ -172,6 +169,7 @@ fun ModuleCompilerAnalyzedOutput.convertToJsIr(
|
|||||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||||
inlineConstTracker = null,
|
inlineConstTracker = null,
|
||||||
allowNonCachedDeclarations = false,
|
allowNonCachedDeclarations = false,
|
||||||
|
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr()
|
||||||
)
|
)
|
||||||
|
|
||||||
return convertToIr(
|
return convertToIr(
|
||||||
|
|||||||
+2
-1
@@ -105,7 +105,8 @@ class Fir2IrJvmResultsConverter(
|
|||||||
evaluatedConstTracker = compilerConfiguration
|
evaluatedConstTracker = compilerConfiguration
|
||||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||||
inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER],
|
inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER],
|
||||||
allowNonCachedDeclarations = false
|
allowNonCachedDeclarations = false,
|
||||||
|
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr(),
|
||||||
)
|
)
|
||||||
val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.result.outputs.single().convertToIr(
|
val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.result.outputs.single().convertToIr(
|
||||||
fir2IrExtensions,
|
fir2IrExtensions,
|
||||||
|
|||||||
+10
@@ -5,16 +5,26 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.test.frontend.fir
|
package org.jetbrains.kotlin.test.frontend.fir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.platform.isCommon
|
import org.jetbrains.kotlin.platform.isCommon
|
||||||
import org.jetbrains.kotlin.platform.isJs
|
import org.jetbrains.kotlin.platform.isJs
|
||||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
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.BackendKinds
|
||||||
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||||
import org.jetbrains.kotlin.test.model.FrontendKinds
|
import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||||
import org.jetbrains.kotlin.test.model.TestModule
|
import org.jetbrains.kotlin.test.model.TestModule
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
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(
|
class Fir2IrResultsConverter(
|
||||||
testServices: TestServices
|
testServices: TestServices
|
||||||
) : Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>(
|
) : Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>(
|
||||||
|
|||||||
+2
-1
@@ -167,7 +167,8 @@ fun ModuleCompilerAnalyzedOutput.convertToWasmIr(
|
|||||||
evaluatedConstTracker = configuration
|
evaluatedConstTracker = configuration
|
||||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||||
inlineConstTracker = null,
|
inlineConstTracker = null,
|
||||||
allowNonCachedDeclarations = false
|
allowNonCachedDeclarations = false,
|
||||||
|
useIrFakeOverrideBuilder = module.shouldUseIrFakeOverrideBuilderInConvertToIr(),
|
||||||
)
|
)
|
||||||
|
|
||||||
return convertToIr(
|
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.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
|
||||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||||
import org.jetbrains.kotlin.test.FirParser
|
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.backend.ir.IrDiagnosticsHandler
|
||||||
import org.jetbrains.kotlin.test.builders.configureIrHandlersStep
|
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.LanguageSettingsDirectives
|
||||||
import org.jetbrains.kotlin.test.directives.configureFirParser
|
import org.jetbrains.kotlin.test.directives.configureFirParser
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
||||||
@@ -90,3 +92,16 @@ open class AbstractFirLightTreeBlackBoxCodegenTest : AbstractFirBlackBoxCodegenT
|
|||||||
|
|
||||||
@FirPsiCodegenTest
|
@FirPsiCodegenTest
|
||||||
open class AbstractFirPsiBlackBoxCodegenTest : AbstractFirBlackBoxCodegenTestBase(FirParser.Psi)
|
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")
|
model("codegen/box")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass<AbstractFirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTest> {
|
||||||
|
model("codegen/box")
|
||||||
|
}
|
||||||
|
|
||||||
testClass<AbstractFirLightTreeBlackBoxCodegenTest>("FirLightTreeBlackBoxModernJdkCodegenTestGenerated") {
|
testClass<AbstractFirLightTreeBlackBoxCodegenTest>("FirLightTreeBlackBoxModernJdkCodegenTestGenerated") {
|
||||||
model("codegen/boxModernJdk")
|
model("codegen/boxModernJdk")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user