NoArg: Fix IllegalAccessError on instantiating sealed class child via Java reflection (KT-18245)

This commit is contained in:
Yan Zhulanow
2017-06-28 22:39:38 +03:00
parent 53e193d130
commit 9a5a003d0a
3 changed files with 39 additions and 2 deletions
+22
View File
@@ -0,0 +1,22 @@
// WITH_RUNTIME
annotation class NoArg
sealed class Test {
abstract val test: String
@NoArg
data class Test1(override val test: String) : Test()
@NoArg
data class Test2(override val test: String) : Test()
}
fun box(): String {
Test::class.java.declaredConstructors.forEach { it.isAccessible = true }
Test.Test1::class.java.declaredConstructors.forEach { it.isAccessible = true }
val instance = Test.Test1::class.java.newInstance() // Error
return "OK"
}