Test for obsolete KT-6988: java.lang.VerifyError: Bad return caused by inline reified

#KT-6988 Obsolete
This commit is contained in:
Michael Bogdanov
2015-10-22 12:55:11 +03:00
parent 1a58636ea9
commit 3e19514099
6 changed files with 61 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
import test.*
public class A()
fun box(): String {
val s = "yo".inlineMeIfYouCan<A>()().call()
if (s !is A) return "fail"
return "OK"
}
+11
View File
@@ -0,0 +1,11 @@
package test
interface Call<T> {
fun call(): T
}
public inline fun <reified T: Any> Any.inlineMeIfYouCan() : () -> Call<T> = {
object : Call<T> {
override fun call() = T::class.java.newInstance()
}
}
@@ -0,0 +1,6 @@
import test.*
fun box(): String {
"yo".inlineMeIfYouCan<StringBuilder>()().run()
return "OK"
}
@@ -0,0 +1,10 @@
package test
public inline fun <reified T: Any> Any.inlineMeIfYouCan() : () -> Runnable = {
object : Runnable {
override fun run() {
javaClass<T>().newInstance()
}
}
}