45 lines
905 B
Kotlin
Vendored
45 lines
905 B
Kotlin
Vendored
// WITH_STDLIB
|
|
|
|
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
|
|
|
|
Demo.Foo::class.java.newInstance()
|
|
Demo.Free::class.java.newInstance()
|
|
|
|
A.Free::class.java.newInstance()
|
|
|
|
return "OK"
|
|
}
|
|
|
|
@NoArg
|
|
sealed class Demo(val name : String) {
|
|
@NoArg
|
|
class Free(name: String)
|
|
|
|
@NoArg
|
|
class Foo(name: String) : Demo(name)
|
|
|
|
@NoArg
|
|
class Bar(name: String) : Demo(name)
|
|
}
|
|
|
|
@NoArg
|
|
abstract class A(val name: String) {
|
|
@NoArg
|
|
class Free(name: String) : A(name)
|
|
} |