Copy sam wrappers during inline

#KT-21671 Fixed
This commit is contained in:
Mikhael Bogdanov
2017-12-05 15:38:40 +01:00
parent 4eb30b6626
commit edefb45585
14 changed files with 339 additions and 5 deletions
@@ -0,0 +1,20 @@
// FILE: 1.kt
// FULL_JDK
package test
import java.util.concurrent.Executors
inline fun doWork(noinline job: ()-> Unit) {
Executors.callable(job).call()
}
// FILE: 2.kt
import test.*
fun box() : String {
var result = "fail"
doWork { result = "OK" }
return result
}
@@ -0,0 +1,22 @@
// FILE: 1.kt
// FULL_JDK
package test
import java.util.concurrent.Executors
inline fun doWork(noinline job: ()-> Unit) {
Executors.callable(job).call()
Executors.callable(job).call()
}
// FILE: 2.kt
import test.*
fun box() : String {
var result = ""
var value = 1
doWork { result += if (value++ == 1) "O" else "K" }
return result
}
@@ -0,0 +1,22 @@
// FILE: 1.kt
// FULL_JDK
package test
import java.util.concurrent.Executors
inline fun doWork(noinline job: ()-> Unit) {
{ Executors.callable(job).call() } ()
Executors.callable(job).call()
}
// FILE: 2.kt
import test.*
fun box() : String {
var result = ""
var value = 1
doWork { result += if (value++ == 1) "O" else "K" }
return result
}
@@ -0,0 +1,24 @@
// FILE: 1.kt
// FULL_JDK
package test
inline fun doWork(job: ()-> Unit) {
job()
}
// FILE: 2.kt
//NO_CHECK_LAMBDA_INLINING
import test.*
import java.util.concurrent.Executors
fun box() : String {
var result = "fail"
doWork {
val job = { result = "OK" }
Executors.callable(job).call()
}
return result
}