Switch default JVM target to 1.8
#KT-29405 Fixed
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.6
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class A
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
// !LANGUAGE: +FunctionTypesWithBigArity
|
||||
// WITH_RUNTIME
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.6
|
||||
// FILE: J.java
|
||||
|
||||
// import kotlin.jvm.functions.Arity;
|
||||
import kotlin.jvm.functions.FunctionN;
|
||||
import kotlin.Unit;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class J {
|
||||
// TODO: uncomment arity as soon as Arity is introduced
|
||||
public static void test(/* @Arity(30) */ FunctionN<Unit> f) {
|
||||
Object o = new Object();
|
||||
for (int i = 0; i < 42; i++) {
|
||||
if (i == 30) continue;
|
||||
|
||||
Object[] args = new Object[i];
|
||||
Arrays.fill(args, o);
|
||||
try {
|
||||
f.invoke(args);
|
||||
} catch (IllegalArgumentException e) {
|
||||
// OK
|
||||
|
||||
if (!e.getMessage().contains("30")) {
|
||||
throw new AssertionError("Exception must specify the expected number of arguments: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
continue;
|
||||
} catch (Throwable e) {
|
||||
throw new AssertionError(
|
||||
"Incorrect exception (IllegalArgumentException expected): " + e.getClass().getName() + ", i = " + i, e
|
||||
);
|
||||
}
|
||||
throw new AssertionError("IllegalArgumentException expected, but nothing was thrown, i = " + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun foo(
|
||||
p00: Any?, p01: Any?, p02: Any?, p03: Any?, p04: Any?, p05: Any?, p06: Any?, p07: Any?, p08: Any?, p09: Any?,
|
||||
p10: Any?, p11: Any?, p12: Any?, p13: Any?, p14: Any?, p15: Any?, p16: Any?, p17: Any?, p18: Any?, p19: Any?,
|
||||
p20: Any?, p21: Any?, p22: Any?, p23: Any?, p24: Any?, p25: Any?, p26: Any?, p27: Any?, p28: Any?, p29: Any?
|
||||
) {}
|
||||
|
||||
class Fun : (Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?,
|
||||
Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?) -> Unit {
|
||||
override fun invoke(
|
||||
p00: Any?, p01: Any?, p02: Any?, p03: Any?, p04: Any?, p05: Any?, p06: Any?, p07: Any?, p08: Any?, p09: Any?,
|
||||
p10: Any?, p11: Any?, p12: Any?, p13: Any?, p14: Any?, p15: Any?, p16: Any?, p17: Any?, p18: Any?, p19: Any?,
|
||||
p20: Any?, p21: Any?, p22: Any?, p23: Any?, p24: Any?, p25: Any?, p26: Any?, p27: Any?, p28: Any?, p29: Any?
|
||||
) {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val lambda: Function30<
|
||||
Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?,
|
||||
Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?,
|
||||
Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?, Any?,
|
||||
Unit> = { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ -> }
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
J.test(lambda as kotlin.jvm.functions.FunctionN<Unit>)
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
J.test(::foo as kotlin.jvm.functions.FunctionN<Unit>)
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
J.test(Fun() as kotlin.jvm.functions.FunctionN<Unit>)
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_REFLECT
|
||||
// JVM_TARGET: 1.6
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
interface I
|
||||
class C : I { fun foo() = super<I>.hashCode() }
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// JVM_TARGET: 1.6
|
||||
|
||||
interface I
|
||||
class C : I { fun foo() = super<I>.hashCode() }
|
||||
|
||||
fun box(): String {
|
||||
C().foo()
|
||||
return "OK"
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
|
||||
fun foo() {
|
||||
val x: Int? = 6
|
||||
val hc = x!!.hashCode()
|
||||
}
|
||||
|
||||
// 1 java/lang/Integer.hashCode \(I\)I
|
||||
// 0 java/lang/Integer.valueOf
|
||||
// 0 intValue
|
||||
@@ -4,4 +4,4 @@ fun box(): String {
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// 1 INVOKESTATIC java/lang/Integer.valueOf
|
||||
// 0 INVOKESTATIC java/lang/Integer.valueOf
|
||||
|
||||
+1
-4
@@ -15,9 +15,6 @@ fun foo() {
|
||||
val b = arrayOfNulls<Int>(4)
|
||||
b[100] = 5
|
||||
|
||||
val x: Int? = 6
|
||||
val hc = x!!.hashCode()
|
||||
|
||||
val y: Int? = 7
|
||||
val z: Int? = 8
|
||||
val res = y === z
|
||||
@@ -26,5 +23,5 @@ fun foo() {
|
||||
val c2: Any = if (1 != one) 0 else "abc"
|
||||
}
|
||||
|
||||
// 9 java/lang/Integer.valueOf
|
||||
// 8 java/lang/Integer.valueOf
|
||||
// 0 intValue
|
||||
|
||||
+2
@@ -1,3 +1,5 @@
|
||||
// JVM_TARGET: 1.6
|
||||
|
||||
fun box(): String {
|
||||
true.hashCode()
|
||||
1.toByte().hashCode()
|
||||
Vendored
+3
-3
@@ -9,7 +9,7 @@ inline class UInt(val value: Int)
|
||||
fun test(u1: UInt, u2: UInt) {
|
||||
val a = u1.value
|
||||
|
||||
val b = u1.value.hashCode() // box int to call hashCode
|
||||
val b = u1.value.hashCode()
|
||||
val c = u1.value + u2.value
|
||||
}
|
||||
|
||||
@@ -18,5 +18,5 @@ fun test(u1: UInt, u2: UInt) {
|
||||
// 0 INVOKESTATIC UInt\$Erased.box
|
||||
// 0 INVOKEVIRTUAL UInt.unbox
|
||||
|
||||
// 1 valueOf
|
||||
// 0 intValue
|
||||
// 0 valueOf
|
||||
// 0 intValue
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.6
|
||||
|
||||
val ua = 1234U
|
||||
val ub = 5678U
|
||||
|
||||
Reference in New Issue
Block a user