JVM: CHECK_BYTECODE_TEST directive + use it in INVOKEDYNAMIC tests

This commit is contained in:
Dmitry Petrov
2021-04-02 16:33:52 +03:00
committed by TeamCityServer
parent ca352c9556
commit 162363a324
119 changed files with 581 additions and 30 deletions
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface IFooAny {
fun foo(x: Any): Any
}
@@ -2,6 +2,11 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
// 1 class CovariantOverrideWithNNothingKt\$box\$1
fun interface IFooNStr {
fun foo(x: Any): String?
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface Cmp<T> {
fun compare(a: T, b: T): Int
}
@@ -1,6 +1,11 @@
// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface Cmp<T> {
fun compare(a: T, b: T): Int
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface GenericToAny<T> {
fun invoke(x: T): Any
}
@@ -2,6 +2,11 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
// 1 class InheritedWithCharDiamondKt\$box\$1
fun interface GenericToAny<T> {
fun invoke(x: T): Any
}
@@ -2,6 +2,11 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
// 1 class InheritedWithCharExplicitlyOverriddenKt\$box\$1
fun interface GenericToAny<T> {
fun invoke(x: T): Any
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface GenericToAny<T> {
fun invoke(x: T): Any
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface GenericToAny<T> {
fun invoke(x: T): Any
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface IFoo<T> {
fun foo(): T
}
@@ -3,6 +3,10 @@
// SAM_CONVERSIONS: INDY
// WITH_RUNTIME
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 2 java/lang/invoke/LambdaMetafactory
fun interface IFooT<T> {
fun foo(x: T): T
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 2 java/lang/invoke/LambdaMetafactory
fun interface IFooT<T> {
fun foo(x: T): T
}
@@ -3,6 +3,10 @@
// SAM_CONVERSIONS: INDY
// WITH_RUNTIME
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 2 java/lang/invoke/LambdaMetafactory
fun interface IFooT<T> {
fun foo(x: Array<T>): T
}
@@ -4,6 +4,12 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
// 1 class MixPrimitiveAndBoxedKt\$box\$f0\$1
// 1 class MixPrimitiveAndBoxedKt\$box\$f1\$1
fun interface IFooT<T> {
fun foo(x: T): T
}
@@ -2,6 +2,11 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
// 1 class NothingReturnTypeAsGenericKt\$box\$1
fun interface IFoo<T> {
fun foo(): T
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface IFoo {
fun foo(): String
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface GenericToAny<T> {
fun invoke(Inner: T): Any
}
@@ -12,5 +16,3 @@ fun box(): String {
foo2<Char>('.') { }
return "OK"
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: CLASS
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 java/lang/invoke/LambdaMetafactory
fun interface GenericToAny<T> {
fun invoke(Inner: T): Any
}
@@ -2,6 +2,10 @@
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 1 java/lang/invoke/LambdaMetafactory
fun interface IFoo<T> {
fun foo(): T
}