[K/N] Run irText tests for K1/Native

^KT-58240
This commit is contained in:
Vladimir Sukharev
2023-08-09 22:21:59 +02:00
committed by Space Team
parent 40c9f831e2
commit 3aa6c9e74d
69 changed files with 3376 additions and 73 deletions
@@ -5,6 +5,9 @@
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// KT-61141: IrSimpleFunctionPublicSymbolImpl for /Derived.foo|foo(kotlin.String){}[0] is already bound
// IGNORE_BACKEND_K1: NATIVE
open class Base<T> {
fun foo(x: T) {}
fun foo(y: String) {}
+3
View File
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
class TestClass
interface TestInterface
+2 -2
View File
@@ -1,7 +1,7 @@
// FIR_IDENTICAL
// SKIP_KLIB_TEST
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
// STATUS: This should not work in JS, Cloneable is JVM-specific API
// TARGET_BACKEND: JVM
// STATUS: Cloneable is JVM-specific API
class A : Cloneable
+3
View File
@@ -5,6 +5,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class TestEnum1 {
TEST1, TEST2
}
@@ -4,6 +4,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class TestFinalEnum1 {
X1
}
@@ -4,6 +4,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class A {
X("asd"),
Y() {
@@ -5,6 +5,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize(K1), getDeclaringClass(K1), clone(K2),
// IGNORE_BACKEND: NATIVE
enum class Test0(val x: Int) {
ZERO;
constructor() : this(0)
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
annotation class TestAnn(val x: String)
@TestAnn("class")
@@ -4,6 +4,9 @@
// SKIP_SIGNATURE_DUMP
// ^ Difference in annotations generated by K1 and K2
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
annotation class TestAnn(val x: String)
enum class TestEnum {
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class En { A, B, C, D }
annotation class TestAnn(val x: En)
@@ -1,6 +1,8 @@
// WITH_STDLIB
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
// IGNORE_BACKEND: NATIVE
class C {
val test1 = 0
@@ -1,4 +1,6 @@
// !LANGUAGE: +ContextReceivers
// KT-61141: K1/Native does not support context receivers
// IGNORE_BACKEND_K1: NATIVE
fun withContext(f: context(String) () -> String) = f("OK")
@@ -1,6 +1,9 @@
// !LANGUAGE: +ContextReceivers
// IGNORE_BACKEND: JS_IR
// KT-61141: kotlin.Comparator instead of java.util.Comparator
// IGNORE_BACKEND: NATIVE
data class Pair<A, B>(val first: A, val second: B)
context(Comparator<T>)
@@ -1,4 +1,6 @@
// !LANGUAGE: +ContextReceivers
// KT-61141: K1/Native does not support context receivers
// IGNORE_BACKEND_K1: NATIVE
class Param
class O {
@@ -1,4 +1,6 @@
// !LANGUAGE: +ContextReceivers
// KT-61141: K1/Native does not support context receivers
// IGNORE_BACKEND_K1: NATIVE
class Param
class C {
@@ -1,4 +1,6 @@
// !LANGUAGE: +ContextReceivers
// KT-61141: K1/Native does not support context receivers
// IGNORE_BACKEND_K1: NATIVE
class C {
val result = "OK"
@@ -1,6 +1,8 @@
// WITH_STDLIB
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
// IGNORE_BACKEND: NATIVE
val test1 by lazy { 42 }
+3
View File
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: throws kotlin.RuntimeException instead of java.lang.RuntimeException
// IGNORE_BACKEND: NATIVE
@Target(AnnotationTarget.TYPE)
annotation class MySerializable(val c: kotlin.reflect.KClass<*>)
@@ -2,6 +2,10 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
// KT-61141: `kotlin.collections.HashMap` instead of `java.util.HashMap`
// IGNORE_BACKEND: NATIVE
fun test1() {
val x by lazy { 42 }
println(x)
@@ -2,6 +2,9 @@
// IGNORE_BACKEND_K1: JVM_IR, JS_IR
// !LANGUAGE: +MultiPlatformProjects
// KT-61141: NO_ACTUAL_FOR_EXPECT: Expected class 'C' has no actual declaration in module <common> for Native (21,14) in /common.kt
// IGNORE_BACKEND_K1: NATIVE
// MODULE: common
// FILE: common.kt
@@ -3,6 +3,9 @@
// SKIP_KLIB_TEST
// LANGUAGE: +MultiPlatformProjects
// KT-61141: NO_ACTUAL_FOR_EXPECT: Expected class 'C1' has no actual declaration in module <common> for Native (9,19) in /common.kt
// IGNORE_BACKEND_K1: NATIVE
// MODULE: common
// FILE: common.kt
@@ -5,6 +5,9 @@
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND_K1: NATIVE
expect enum class MyEnum {
FOO,
BAR
@@ -1,6 +1,8 @@
// WITH_STDLIB
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
// IGNORE_BACKEND: NATIVE
val test1 = 0
@@ -3,6 +3,8 @@
// LANGUAGE: -ProhibitIllegalValueParameterUsageInDefaultArguments
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// KT-61141: catches kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND_K1: NATIVE
fun f(
f1: () -> String = { f2() },
@@ -4,6 +4,9 @@
// !IGNORE_ERRORS
// DIAGNOSTICS: -UNRESOLVED_REFERENCE -OVERLOAD_RESOLUTION_AMBIGUITY
// KT-61141: org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtNameReferenceExpression: unresolved
// IGNORE_BACKEND: NATIVE
val test1 = unresolved
val test2: Unresolved =
@@ -4,6 +4,9 @@
// !IGNORE_ERRORS
// DIAGNOSTICS: -BREAK_OR_CONTINUE_OUTSIDE_A_LOOP -NOT_A_LOOP_LABEL -UNRESOLVED_REFERENCE -BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY
// KT-61141: java.lang.RuntimeException: Loop not found for break expression: break
// IGNORE_BACKEND: NATIVE
fun test1() {
break
continue
@@ -6,6 +6,9 @@
// DIAGNOSTICS: -NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER -BREAK_OR_CONTINUE_OUTSIDE_A_LOOP -UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE -NO_VALUE_FOR_PARAMETER -NOT_A_LOOP_LABEL -UNRESOLVED_REFERENCE -TYPE_MISMATCH -BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY
// WITH_STDLIB
// KT-61141: NPE at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateValueArgumentsUsing()
// IGNORE_BACKEND: NATIVE
inline fun foo(block: () -> Unit) { block() }
inline fun bar(block1: () -> Unit, noinline block2: () -> Unit) {
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: throws kotlin.AssertionError instead of java.lang.AssertionError
// IGNORE_BACKEND: NATIVE
fun testBreakFor() {
val xs = IntArray(10) { i -> i }
var k = 0
@@ -2,5 +2,8 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: rethrows kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND: NATIVE
fun test(f: () -> Unit) =
try { f() } catch (e: Exception) { throw e }
@@ -4,6 +4,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57427, KT-57430
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class X {
B {
@@ -4,6 +4,9 @@
// SKIP_SIGNATURE_DUMP
// ^ Types of properties of anonymous classes generated by K1 and K2 are different
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class MyEnum {
Z {
var counter = 0
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class A { V1 }
fun testVariableAssignment_throws(a: A) {
+3
View File
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
// IGNORE_BACKEND: NATIVE
fun testEmpty(ss: List<String>) {
for (s in ss);
}
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
// IGNORE_BACKEND: NATIVE
object FiveTimes
class IntCell(var value: Int)
@@ -7,6 +7,10 @@ fun interface Foo : Function0<Int> {
// Mangled name: Foo#invoke(){}kotlin.Int
// Public signature: /Foo.invoke|906964710558498066[0]
// Public signature debug description: invoke(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: Foo#invoke(){}
// Public signature: /Foo.invoke|-4663091332620260873[0]
// Public signature debug description: invoke(){}
abstract /* fake */ override operator fun invoke(): Int
}
@@ -15,6 +19,10 @@ fun interface Foo : Function0<Int> {
// Mangled name: #id(Foo){}kotlin.Any
// Public signature: /id|-7816997914602483733[0]
// Public signature debug description: id(Foo){}kotlin.Any
// CHECK JS_IR NATIVE:
// Mangled name: #id(Foo){}
// Public signature: /id|-443964874282345181[0]
// Public signature debug description: id(Foo){}
fun id(foo: Foo): Any
// CHECK:
+1 -1
View File
@@ -1,5 +1,5 @@
// WITH_STDLIB
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, NATIVE
// ^ the order of fake overrides is different on K2
interface X {
+3
View File
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: throws kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND: NATIVE
fun <T> magic(): T = throw Exception()
fun <T> test(value: T, value2: T) {
+3
View File
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR_ES6
// ISSUE: KT-48708
// KT-61141: throws kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND: NATIVE
fun test(b: Boolean) {
val x = if (b) {
3
+3
View File
@@ -3,6 +3,9 @@
// IGNORE_BACKEND: JS_IR_ES6
// ISSUE: KT-48806
// KT-61141: throws kotlin.RuntimeException instead of java.lang.RuntimeException, and catches kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND: NATIVE
class A {
val test_1: Int = try{
throw RuntimeException()
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
object A
enum class En { X }
@@ -4,6 +4,9 @@
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// KT-61141: Extra invocations of toLong(), toShort(), etc.. after unaryMinus()
// IGNORE_BACKEND_K1: NATIVE
val test1: Long = 42
val test2: Short = 42
val test3: Byte = 42
+2
View File
@@ -3,6 +3,8 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
// IGNORE_BACKEND: NATIVE
fun expectsString(s: String) {}
fun expectsInt(i: Int) {}
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
val n: Any? = null
enum class En(val x: String?) {
+3
View File
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class Enum { A }
object A
val a = 0
@@ -1,6 +1,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class En { A, B, C }
fun test() {
+3
View File
@@ -3,6 +3,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: `set()` throws kotlin.IllegalStateException instead of java.lang.IllegalStateException
// IGNORE_BACKEND: NATIVE
sealed class ArrayMap<T : Any> : Iterable<T> {
abstract val size: Int
@@ -7,6 +7,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57788
// KT-61141: ImplicitReceiverStack & PersistentImplicitReceiverStack miss fake overrides `forEach` & `spliterator`
// IGNORE_BACKEND: NATIVE
interface SymbolOwner<E : SymbolOwner<E>>
interface Symbol<E : SymbolOwner<E>>
+3
View File
@@ -4,6 +4,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57755
// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
// IGNORE_BACKEND_K1: NATIVE
fun main() {
val (a: Any, _) = 1 to 2
println(a)
@@ -7,6 +7,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57427
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
class Wrapper(var baseUrl: String)
enum class ConfigurationParameter {
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class EE(val myName: String = this.toString().lowercase()) {
ENTRY;
}
@@ -2,6 +2,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: mustCheckInImports throws kotlin.IllegalStateException instead of java.lang.IllegalStateException
// IGNORE_BACKEND: NATIVE
abstract class Visibility(val name: String, val isPublicAPI: Boolean) {
open val internalDisplayName: String
get() = name
@@ -1,5 +1,5 @@
// SKIP_KLIB_TEST
// IGNORE_BACKEND: JS_IR
// TARGET_BACKEND: JVM
// WITH_STDLIB
// LANGUAGE: +ValueClasses
+3
View File
@@ -3,6 +3,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: In testLrmFoo1 and testLrmFoo2, `print (message: kotlin.Any?)` instead of `print (message: kotlin.Int)`
// IGNORE_BACKEND: NATIVE
fun test0() {
run {
return
+3
View File
@@ -4,6 +4,9 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57430
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
enum class Z {
ENTRY {
fun test() {}
@@ -2,6 +2,8 @@
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// KT-61141: difference in IR for implicit cast
// IGNORE_BACKEND_K1: NATIVE
interface X
interface Z
+3
View File
@@ -3,6 +3,9 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// KT-61141: For result of `+`, Native backend inferred type Comparable instead of Nothing
// IGNORE_BACKEND: NATIVE
fun test(): Boolean {
val ref = (listOf('a') + "-")::contains
return ref('a')
@@ -1,6 +1,9 @@
// KT-42036
// IGNORE_BACKEND: JS_IR
// KT-61141: getTag() throws kotlin.Exception instead of java.lang.Exception
// IGNORE_BACKEND: NATIVE
typealias Action<RenderingT> = (@UnsafeVariance RenderingT) -> Unit
data class Tag<out RenderingT>(val action: Action<RenderingT>)