JVM: CHECK_BYTECODE_TEST directive + use it in INVOKEDYNAMIC tests
This commit is contained in:
committed by
TeamCityServer
parent
ca352c9556
commit
162363a324
+5
-7
@@ -55,9 +55,10 @@ fun readExpectedOccurrences(lines: List<String>): List<OccurrenceInfo> {
|
|||||||
fun readExpectedOccurrencesForMultiFileTest(
|
fun readExpectedOccurrencesForMultiFileTest(
|
||||||
fileName: String,
|
fileName: String,
|
||||||
fileContent: String,
|
fileContent: String,
|
||||||
destination: MutableMap<String, List<OccurrenceInfo>>
|
withGeneratedFile: MutableMap<String, List<OccurrenceInfo>>,
|
||||||
|
global: MutableList<OccurrenceInfo>
|
||||||
) {
|
) {
|
||||||
var currentOccurrenceInfos: MutableList<OccurrenceInfo>? = null
|
var currentOccurrenceInfos: MutableList<OccurrenceInfo> = global
|
||||||
var backend = TargetBackend.ANY
|
var backend = TargetBackend.ANY
|
||||||
for (line in fileContent.split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()) {
|
for (line in fileContent.split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()) {
|
||||||
if (line.contains(JVM_TEMPLATES)) backend = TargetBackend.JVM
|
if (line.contains(JVM_TEMPLATES)) backend = TargetBackend.JVM
|
||||||
@@ -66,18 +67,15 @@ fun readExpectedOccurrencesForMultiFileTest(
|
|||||||
val atOutputFileMatcher = AT_OUTPUT_FILE_PATTERN.matcher(line)
|
val atOutputFileMatcher = AT_OUTPUT_FILE_PATTERN.matcher(line)
|
||||||
if (atOutputFileMatcher.matches()) {
|
if (atOutputFileMatcher.matches()) {
|
||||||
val outputFileName = atOutputFileMatcher.group(1)
|
val outputFileName = atOutputFileMatcher.group(1)
|
||||||
if (destination.containsKey(outputFileName)) {
|
if (withGeneratedFile.containsKey(outputFileName)) {
|
||||||
throw AssertionError("${fileName}: Expected occurrences for output file $outputFileName were already provided")
|
throw AssertionError("${fileName}: Expected occurrences for output file $outputFileName were already provided")
|
||||||
}
|
}
|
||||||
currentOccurrenceInfos = ArrayList()
|
currentOccurrenceInfos = ArrayList()
|
||||||
destination[outputFileName] = currentOccurrenceInfos
|
withGeneratedFile[outputFileName] = currentOccurrenceInfos
|
||||||
}
|
}
|
||||||
|
|
||||||
val expectedOccurrencesMatcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line)
|
val expectedOccurrencesMatcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line)
|
||||||
if (expectedOccurrencesMatcher.matches()) {
|
if (expectedOccurrencesMatcher.matches()) {
|
||||||
if (currentOccurrenceInfos == null) {
|
|
||||||
throw AssertionError("${fileName}: Should specify output file with '// @<OUTPUT_FILE_NAME>:' before expectations")
|
|
||||||
}
|
|
||||||
val occurrenceInfo = parseOccurrenceInfo(expectedOccurrencesMatcher, backend)
|
val occurrenceInfo = parseOccurrenceInfo(expectedOccurrencesMatcher, backend)
|
||||||
currentOccurrenceInfos.add(occurrenceInfo)
|
currentOccurrenceInfos.add(occurrenceInfo)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class BigArityExtLambdaKt\$box\$1
|
||||||
|
|
||||||
fun test(
|
fun test(
|
||||||
extFn: Int.(
|
extFn: Int.(
|
||||||
p0: String, p1: String,
|
p0: String, p1: String,
|
||||||
@@ -21,4 +26,4 @@ fun box() =
|
|||||||
p20: Int, p21: Int, p22: Int
|
p20: Int, p21: Int, p22: Int
|
||||||
->
|
->
|
||||||
p0 + p1
|
p0 + p1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory\.metafactory
|
||||||
|
// 1 final class BigArityLambdaKt\$box\$1
|
||||||
|
|
||||||
fun box() =
|
fun box() =
|
||||||
{ p0: String, p1: String, p2: Int, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, p8: Int, p9: Int,
|
{ p0: String, p1: String, p2: Int, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, p8: Int, p9: Int,
|
||||||
p10: Int, p11: Int, p12: Int, p13: Int, p14: Int, p15: Int, p16: Int, p17: Int, p18: Int, p19: Int,
|
p10: Int, p11: Int, p12: Int, p13: Int, p14: Int, p15: Int, p16: Int, p17: Int, p18: Int, p19: Int,
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
class C(val x: String) {
|
class C(val x: String) {
|
||||||
fun test() = { x }
|
fun test() = { x }
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
class C(val x: String)
|
class C(val x: String)
|
||||||
|
|
||||||
fun C.test() = { x }
|
fun C.test() = { x }
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val ok = "OK"
|
val ok = "OK"
|
||||||
return { ok }()
|
return { ok }()
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
var ok = "Failed"
|
var ok = "Failed"
|
||||||
{ ok = "OK" }()
|
{ ok = "OK" }()
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
class C(val x: String)
|
class C(val x: String)
|
||||||
|
|
||||||
fun boxLambda(lambda: C.() -> String) = lambda
|
fun boxLambda(lambda: C.() -> String) = lambda
|
||||||
|
|||||||
@@ -2,9 +2,14 @@
|
|||||||
// IGNORE_BACKEND: JVM
|
// IGNORE_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
// CHECK_BYTECODE_LISTING
|
// CHECK_BYTECODE_LISTING
|
||||||
// WITH_SIGNATURES
|
// WITH_SIGNATURES
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun <T1, R> call(value: T1, f: (T1) -> R): R {
|
fun <T1, R> call(value: T1, f: (T1) -> R): R {
|
||||||
return f(value)
|
return f(value)
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class LambdaWithInlineAnyKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Any)
|
inline class Z(val value: Any)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
||||||
|
|||||||
Vendored
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Int)
|
inline class Z(val value: Int)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
||||||
|
|||||||
Vendored
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Any?)
|
inline class Z(val value: Any?)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
||||||
|
|||||||
Vendored
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Int?)
|
inline class Z(val value: Int?)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
fun foo1(fs: (Z) -> Z) = fs(Z(1))
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: String?)
|
inline class Z(val value: String?)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z("O"))
|
fun foo1(fs: (Z) -> Z) = fs(Z("O"))
|
||||||
|
|||||||
compiler/testData/codegen/box/invokedynamic/lambdas/inlineClassInSignature/lambdaWithInlineString.kt
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class LambdaWithInlineStringKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: String)
|
inline class Z(val value: String)
|
||||||
|
|
||||||
fun foo1(fs: (Z) -> Z) = fs(Z("O"))
|
fun foo1(fs: (Z) -> Z) = fs(Z("O"))
|
||||||
|
|||||||
@@ -4,10 +4,14 @@
|
|||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun lambdaIsSerializable(fn: () -> Unit) = fn is java.io.Serializable
|
fun lambdaIsSerializable(fn: () -> Unit) = fn is java.io.Serializable
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
if (lambdaIsSerializable {})
|
if (lambdaIsSerializable {})
|
||||||
return "Failed: indy lambdas should not be serializable"
|
return "Failed: indy lambdas should not be serializable"
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
// desugaring on Android
|
// desugaring on Android
|
||||||
// IGNORE_BACKEND: ANDROID
|
// IGNORE_BACKEND: ANDROID
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun lambdaToString(fn: () -> Unit) = fn.toString()
|
fun lambdaToString(fn: () -> Unit) = fn.toString()
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
@@ -14,4 +18,4 @@ fun box(): String {
|
|||||||
if (!str.startsWith("LambdaToStingKt"))
|
if (!str.startsWith("LambdaToStingKt"))
|
||||||
return "Failed: indy lambda toString is inherited from java.lang.Object: $str"
|
return "Failed: indy lambda toString is inherited from java.lang.Object: $str"
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,8 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 3 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box() = { { "O" }() + { "K" }() }()
|
fun box() = { { "O" }() + { "K" }() }()
|
||||||
|
|||||||
@@ -2,7 +2,12 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
|
||||||
// FILE: nullabilityAssertions.kt
|
// FILE: nullabilityAssertions.kt
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val fn: (String) -> String = { it }
|
val fn: (String) -> String = { it }
|
||||||
try {
|
try {
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val test = { i: Int -> i + 40 }(2)
|
val test = { i: Int -> i + 40 }(2)
|
||||||
if (test != 42) return "Failed: test=$test"
|
if (test != 42) return "Failed: test=$test"
|
||||||
|
|||||||
@@ -2,4 +2,8 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun box() = { "OK" }()
|
fun box() = { "OK" }()
|
||||||
|
|||||||
@@ -2,15 +2,20 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// WITH_COROUTINES
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class SuspendLambdaKt\$box\$1
|
||||||
|
|
||||||
import kotlin.coroutines.*
|
import kotlin.coroutines.*
|
||||||
|
|
||||||
var c: Continuation<Unit>? = null
|
var c: Continuation<Unit>? = null
|
||||||
|
|
||||||
suspend fun suspendMe() = suspendCoroutine<Unit> { continuation ->
|
suspend fun suspendMe() =
|
||||||
c = continuation
|
suspendCoroutine<Unit> { continuation ->
|
||||||
}
|
c = continuation
|
||||||
|
}
|
||||||
|
|
||||||
fun builder(c: suspend () -> Unit) {
|
fun builder(c: suspend () -> Unit) {
|
||||||
c.startCoroutine(object: Continuation<Unit> {
|
c.startCoroutine(object: Continuation<Unit> {
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// LAMBDAS: INDY
|
// LAMBDAS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
var ok = "Failed"
|
var ok = "Failed"
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
+10
@@ -2,7 +2,17 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 19 final synthetic class BoundAdaptedFunctionReferenceKt\$box\$[0-9]*
|
||||||
|
// 1 final synthetic class FromOtherFileKt\$target1FromOtherFile\$[0-9]*
|
||||||
|
// 1 final synthetic class FromOtherFileKt\$adapted1FromOtherFile\$[0-9]*
|
||||||
|
// 1 final synthetic class FromOtherFileKt\$adapted2FromOtherFile\$[0-9]*
|
||||||
|
|
||||||
// FILE: boundAdaptedFunctionReference.kt
|
// FILE: boundAdaptedFunctionReference.kt
|
||||||
|
|
||||||
fun checkEqual(x: Any, y: Any) {
|
fun checkEqual(x: Any, y: Any) {
|
||||||
if (x != y || y != x) throw AssertionError("$x and $y should be equal")
|
if (x != y || y != x) throw AssertionError("$x and $y should be equal")
|
||||||
if (x.hashCode() != y.hashCode()) throw AssertionError("$x and $y should have the same hash code")
|
if (x.hashCode() != y.hashCode()) throw AssertionError("$x and $y should have the same hash code")
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class BoundReferenceKt\$box\$[0-9]*
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class BuiltinMemberReferenceKt\$box\$test\$1
|
||||||
|
|
||||||
fun interface IntFun {
|
fun interface IntFun {
|
||||||
fun invoke(i: Int): Int
|
fun invoke(i: Int): Int
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: capturingIndySam.kt
|
// FILE: capturingIndySam.kt
|
||||||
var test = "Failed"
|
var test = "Failed"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class ConstructorReferenceKt\$box\$1
|
||||||
|
|
||||||
class C(val test: String)
|
class C(val test: String)
|
||||||
|
|
||||||
fun interface MakeC {
|
fun interface MakeC {
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final class CovariantOverrideWithPrimitiveKt\$box\$test\$
|
||||||
|
|
||||||
fun interface IFooAny {
|
fun interface IFooAny {
|
||||||
fun foo(): Any
|
fun foo(): Any
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final class EnhancedNullabilityKt\$box\$t1\$1
|
||||||
|
// TODO check why EnhancedNullabilityKt\$box\$t1\$1 is not synthetic
|
||||||
|
|
||||||
// FILE: enhancedNullability.kt
|
// FILE: enhancedNullability.kt
|
||||||
fun interface IGetInt {
|
fun interface IGetInt {
|
||||||
fun get(x: Int): Int
|
fun get(x: Int): Int
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: capturedSamArgument.kt
|
// FILE: capturedSamArgument.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
var lambda = { "OK" }
|
var lambda = { "OK" }
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: capturingLambda.kt
|
// FILE: capturingLambda.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val co = 'O'
|
val co = 'O'
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: extensionLambda1.kt
|
// FILE: extensionLambda1.kt
|
||||||
fun samExtLambda(ext: String.() -> String) = Sam(ext)
|
fun samExtLambda(ext: String.() -> String) = Sam(ext)
|
||||||
|
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: extensionLambda2.kt
|
// FILE: extensionLambda2.kt
|
||||||
fun samExtLambda(ext: String.(String) -> String) = Sam(ext)
|
fun samExtLambda(ext: String.(String) -> String) = Sam(ext)
|
||||||
|
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: genericSam1.kt
|
// FILE: genericSam1.kt
|
||||||
|
|
||||||
fun box(): String = Sam<String, String> { "O" + it }.get("K")
|
fun box(): String = Sam<String, String> { "O" + it }.get("K")
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: genericSam2.kt
|
// FILE: genericSam2.kt
|
||||||
|
|
||||||
fun <FT, FR> test(lambda: (FT) -> FR) = Sam(lambda)
|
fun <FT, FR> test(lambda: (FT) -> FR) = Sam(lambda)
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: simple.kt
|
// FILE: simple.kt
|
||||||
val lambda = { "OK" }
|
val lambda = { "OK" }
|
||||||
|
|
||||||
|
|||||||
+6
@@ -1,6 +1,12 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class AdaptedFunRefWithCoercionToUnitKt\$box\$[0-9]+
|
||||||
|
|
||||||
// FILE: adaptedFunRefWithCoercionToUnit.kt
|
// FILE: adaptedFunRefWithCoercionToUnit.kt
|
||||||
var ok = "Failed"
|
var ok = "Failed"
|
||||||
|
|
||||||
|
|||||||
+6
@@ -1,6 +1,12 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class AdaptedFunRefWithDefaultParametersKt\$box\$[0-9]+
|
||||||
|
|
||||||
// FILE: adaptedFunRefWithDefaultParameters.kt
|
// FILE: adaptedFunRefWithDefaultParameters.kt
|
||||||
var ok = "Failed"
|
var ok = "Failed"
|
||||||
|
|
||||||
|
|||||||
+6
@@ -1,6 +1,12 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class AdaptedFunRefWithVarargKt\$box\$[0-9]+
|
||||||
|
|
||||||
// FILE: adaptedFunRefWithVararg.kt
|
// FILE: adaptedFunRefWithVararg.kt
|
||||||
var ok = "Failed"
|
var ok = "Failed"
|
||||||
|
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundExtFun.kt
|
// FILE: boundExtFun.kt
|
||||||
fun String.k(s: String) = this + s + "K"
|
fun String.k(s: String) = this + s + "K"
|
||||||
|
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundInnerConstructorRef.kt
|
// FILE: boundInnerConstructorRef.kt
|
||||||
class Outer(val s1: String) {
|
class Outer(val s1: String) {
|
||||||
inner class Inner(val s2: String) {
|
inner class Inner(val s2: String) {
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundLocalExtFun.kt
|
// FILE: boundLocalExtFun.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
fun String.k(s: String) = this + s + "K"
|
fun String.k(s: String) = this + s + "K"
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundMemberRef.kt
|
// FILE: boundMemberRef.kt
|
||||||
class C(val t: String) {
|
class C(val t: String) {
|
||||||
fun test() = t
|
fun test() = t
|
||||||
|
|||||||
+4
@@ -4,6 +4,10 @@
|
|||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 2 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundRefToSuperClassMethod.kt
|
// FILE: boundRefToSuperClassMethod.kt
|
||||||
|
|
||||||
class Impl(val set1: Set<String>, val set2: Set<String>) : JDerived() {
|
class Impl(val set1: Set<String>, val set2: Set<String>) : JDerived() {
|
||||||
|
|||||||
+4
@@ -4,6 +4,10 @@
|
|||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 2 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: boundRefToSuperInterfaceMethod.kt
|
// FILE: boundRefToSuperInterfaceMethod.kt
|
||||||
|
|
||||||
class Impl(val set1: Set<String>, val set2: Set<String>) : JDerived {
|
class Impl(val set1: Set<String>, val set2: Set<String>) : JDerived {
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: constructorRef.kt
|
// FILE: constructorRef.kt
|
||||||
class C(val t: String)
|
class C(val t: String)
|
||||||
|
|
||||||
|
|||||||
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: enhancedNullability.kt
|
// FILE: enhancedNullability.kt
|
||||||
fun mul2(x: Int) = x * 2
|
fun mul2(x: Int) = x * 2
|
||||||
|
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: innerConstructorRef.kt
|
// FILE: innerConstructorRef.kt
|
||||||
class Outer(val s1: String) {
|
class Outer(val s1: String) {
|
||||||
inner class Inner(val s2: String) {
|
inner class Inner(val s2: String) {
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: intReturnTypeAsNumber.kt
|
// FILE: intReturnTypeAsNumber.kt
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: interfaceMemberRef.kt
|
// FILE: interfaceMemberRef.kt
|
||||||
interface IFoo {
|
interface IFoo {
|
||||||
fun foo(): String
|
fun foo(): String
|
||||||
|
|||||||
+5
@@ -5,6 +5,11 @@
|
|||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// IGNORE_DEXING
|
// IGNORE_DEXING
|
||||||
// ^ D8 fails with AssertionError, possible reason: only Kotlin output files are passed to D8
|
// ^ D8 fails with AssertionError, possible reason: only Kotlin output files are passed to D8
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: kt45581.kt
|
// FILE: kt45581.kt
|
||||||
|
|
||||||
fun box(): String = J.bar(emptySet<String>()::contains)
|
fun box(): String = J.bar(emptySet<String>()::contains)
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: localFunction1.kt
|
// FILE: localFunction1.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
fun ok() = "OK"
|
fun ok() = "OK"
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: localFunction2.kt
|
// FILE: localFunction2.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val t = "O"
|
val t = "O"
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: memberRef.kt
|
// FILE: memberRef.kt
|
||||||
class C(val t: String) {
|
class C(val t: String) {
|
||||||
fun test() = t
|
fun test() = t
|
||||||
|
|||||||
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: JavaRunner.java
|
// FILE: JavaRunner.java
|
||||||
public class JavaRunner {
|
public class JavaRunner {
|
||||||
public static void runTwice(Runnable runnable) {
|
public static void runTwice(Runnable runnable) {
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: nothingReturnTypeAsObject.kt
|
// FILE: nothingReturnTypeAsObject.kt
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: nothingReturnTypeAsString.kt
|
// FILE: nothingReturnTypeAsString.kt
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: nullableNothingReturnTypeAsObject.kt
|
// FILE: nullableNothingReturnTypeAsObject.kt
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: nullableNothingReturnTypeAsString.kt
|
// FILE: nullableNothingReturnTypeAsString.kt
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: simple.kt
|
// FILE: simple.kt
|
||||||
fun ok() = "OK"
|
fun ok() = "OK"
|
||||||
|
|
||||||
|
|||||||
compiler/testData/codegen/box/invokedynamic/sam/functionRefToJavaInterface/voidReturnTypeAsObject.kt
Vendored
+6
@@ -1,6 +1,12 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 final synthetic class VoidReturnTypeAsObjectKt\$box\$r\$[0-9]+
|
||||||
|
|
||||||
// FILE: voidReturnTypeAsObject.kt
|
// FILE: voidReturnTypeAsObject.kt
|
||||||
var t = "Failed"
|
var t = "Failed"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
fun foo(x: T): T
|
fun foo(x: T): T
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 2 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
fun foo(x: T): T
|
fun foo(x: T): T
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,10 @@
|
|||||||
// CHECK_BYTECODE_LISTING
|
// CHECK_BYTECODE_LISTING
|
||||||
// WITH_SIGNATURES
|
// WITH_SIGNATURES
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface FunIFace<T0, R> {
|
fun interface FunIFace<T0, R> {
|
||||||
fun call(arg: T0): R
|
fun call(arg: T0): R
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineAnyKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Any)
|
inline class Z(val value: Any)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
Vendored
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineIntKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Int)
|
inline class Z(val value: Int)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
compiler/testData/codegen/box/invokedynamic/sam/inlineClassInSignature/funInterfaceWithInlineNAny.kt
Vendored
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineNAnyKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Any?)
|
inline class Z(val value: Any?)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
compiler/testData/codegen/box/invokedynamic/sam/inlineClassInSignature/funInterfaceWithInlineNInt.kt
Vendored
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineNIntKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Int?)
|
inline class Z(val value: Int?)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineNStringKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: String?)
|
inline class Z(val value: String?)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
+5
@@ -4,6 +4,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class FunInterfaceWithInlineStringKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: String)
|
inline class Z(val value: String)
|
||||||
|
|
||||||
fun interface IFooZ {
|
fun interface IFooZ {
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class GenericFunInterfaceWithInlineAnyKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: Any)
|
inline class Z(val value: Any)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Int)
|
inline class Z(val value: Int)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Any?)
|
inline class Z(val value: Any?)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: Int?)
|
inline class Z(val value: Int?)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
inline class Z(val value: String?)
|
inline class Z(val value: String?)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class GenericFunInterfaceWithInlineStringKt\$box\$t\$1
|
||||||
|
|
||||||
inline class Z(val value: String)
|
inline class Z(val value: String)
|
||||||
|
|
||||||
fun interface IFoo<T> {
|
fun interface IFoo<T> {
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory\.metafactory
|
||||||
|
|
||||||
fun interface INum {
|
fun interface INum {
|
||||||
fun get(): Number
|
fun get(): Number
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: nullabilityAssertions.kt
|
// FILE: nullabilityAssertions.kt
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 2 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IFoo {
|
fun interface IFoo {
|
||||||
fun foo(): String
|
fun foo(): String
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 4 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: primitiveVsWrapperInSam.kt
|
// FILE: primitiveVsWrapperInSam.kt
|
||||||
var test = 0
|
var test = 0
|
||||||
|
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 3 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IFoo {
|
fun interface IFoo {
|
||||||
fun foo(k: String): String
|
fun foo(k: String): String
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IExtFun {
|
fun interface IExtFun {
|
||||||
fun String.foo(s: String) : String
|
fun String.foo(s: String) : String
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface KRunnable {
|
fun interface KRunnable {
|
||||||
fun run()
|
fun run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
// FILE: simpleIndySam.kt
|
// FILE: simpleIndySam.kt
|
||||||
var test = "Failed"
|
var test = "Failed"
|
||||||
|
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface IFooAny {
|
fun interface IFooAny {
|
||||||
fun foo(x: Any): Any
|
fun foo(x: Any): Any
|
||||||
}
|
}
|
||||||
|
|||||||
compiler/testData/codegen/box/invokedynamic/sam/specializedGenerics/covariantOverrideWithNNothing.kt
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class CovariantOverrideWithNNothingKt\$box\$1
|
||||||
|
|
||||||
fun interface IFooNStr {
|
fun interface IFooNStr {
|
||||||
fun foo(x: Any): String?
|
fun foo(x: Any): String?
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface Cmp<T> {
|
fun interface Cmp<T> {
|
||||||
fun compare(a: T, b: T): Int
|
fun compare(a: T, b: T): Int
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+5
@@ -1,6 +1,11 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface Cmp<T> {
|
fun interface Cmp<T> {
|
||||||
fun compare(a: T, b: T): Int
|
fun compare(a: T, b: T): Int
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface GenericToAny<T> {
|
fun interface GenericToAny<T> {
|
||||||
fun invoke(x: T): Any
|
fun invoke(x: T): Any
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class InheritedWithCharDiamondKt\$box\$1
|
||||||
|
|
||||||
fun interface GenericToAny<T> {
|
fun interface GenericToAny<T> {
|
||||||
fun invoke(x: T): Any
|
fun invoke(x: T): Any
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 0 java/lang/invoke/LambdaMetafactory
|
||||||
|
// 1 class InheritedWithCharExplicitlyOverriddenKt\$box\$1
|
||||||
|
|
||||||
fun interface GenericToAny<T> {
|
fun interface GenericToAny<T> {
|
||||||
fun invoke(x: T): Any
|
fun invoke(x: T): Any
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface GenericToAny<T> {
|
fun interface GenericToAny<T> {
|
||||||
fun invoke(x: T): Any
|
fun invoke(x: T): Any
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,10 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
// SAM_CONVERSIONS: INDY
|
// SAM_CONVERSIONS: INDY
|
||||||
|
|
||||||
|
// CHECK_BYTECODE_TEXT
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 java/lang/invoke/LambdaMetafactory
|
||||||
|
|
||||||
fun interface GenericToAny<T> {
|
fun interface GenericToAny<T> {
|
||||||
fun invoke(x: T): Any
|
fun invoke(x: T): Any
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user