[JS IR BE] support SAM conversions in DCE-driven mode

This commit is contained in:
Anton Bannykh
2020-03-05 18:17:47 +03:00
committed by Anton Bannykh
parent 8fcd73e3cb
commit abc6ecaa1c
19 changed files with 48 additions and 30 deletions
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
fun interface Foo {
fun invoke(): String
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
// FILE: lib.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
fun interface KRunnable {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun interface FunInterface {
fun invoke()
@@ -1,6 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument
// IGNORE_BACKEND_FIR: JVM_IR
// SKIP_DCE_DRIVEN
fun interface MyRunnable {
fun run()
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
fun interface Base {
fun doStuff(): String
@@ -27,4 +26,4 @@ fun box(): String {
if (runProxy { 10 } != "10") return "fail2"
return runBase { "OK" }
}
}
@@ -1,6 +1,5 @@
// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JS_IR_ES6
// SKIP_DCE_DRIVEN
fun interface FunWithReceiver {
fun String.foo(): String
@@ -1,6 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// WITH_RUNTIME
// SKIP_DCE_DRIVEN
fun interface MyRunnable {
fun invoke()
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
// MODULE: m1
// FILE: m1.kt
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
interface I {
fun inherited(s: String): String = privateInherited(s)
@@ -1,6 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// WITH_RUNTIME
// SKIP_DCE_DRIVEN
fun interface KRunnable {
fun invoke()
@@ -1,6 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// WITH_RUNTIME
// SKIP_DCE_DRIVEN
fun interface Fn<T, R> {
fun run(s: String, i: Int, t: T): R
@@ -1,7 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// SKIP_DCE_DRIVEN
// This test should check argument coercion between the SAM and the lambda.
// For now it checks that Char is boxed in JS
@@ -1,6 +1,5 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// WITH_RUNTIME
// SKIP_DCE_DRIVEN
fun interface KRunnable {
fun invoke()
@@ -1,5 +1,4 @@
// !LANGUAGE: +FunctionalInterfaceConversion
// SKIP_DCE_DRIVEN
fun interface S {
fun invoke(): String
@@ -1,7 +1,6 @@
// !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions
// WITH_COROUTINES
// WITH_RUNTIME
// SKIP_DCE_DRIVEN
import helpers.*
import kotlin.coroutines.*