Add tests for issues fixed in JVM IR and other obsolete issues
#KT-6007 #KT-16445 #KT-17753 #KT-22488 #KT-23881 #KT-24135 #KT-26360 #KT-27427 #KT-27449 #KT-27830 #KT-28042 #KT-29595 #KT-30708 #KT-32793
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
|
||||
class ShouldBeCaptured
|
||||
class ShouldNOTBeCaptured
|
||||
|
||||
class ClassWithCallback {
|
||||
var someCallback: (() -> Unit)? = null
|
||||
|
||||
fun checkFields(): String {
|
||||
for (field in someCallback!!.javaClass.declaredFields) {
|
||||
val value = field.get(someCallback!!)
|
||||
if (value is ShouldNOTBeCaptured) throw AssertionError("Leaked value")
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val toCapture = ShouldBeCaptured()
|
||||
val notToCapture = ShouldNOTBeCaptured()
|
||||
|
||||
val classWithCallback = ClassWithCallback()
|
||||
classWithCallback.apply {
|
||||
someCallback = { toCapture }
|
||||
notToCapture
|
||||
}
|
||||
return classWithCallback.checkFields()
|
||||
}
|
||||
Reference in New Issue
Block a user