NoArg: Fix compatibility with sealed classes with non-zero-parameter constructors (KT-19687)

Also check if a class has a sealed super class properly.
This commit is contained in:
Yan Zhulanow
2017-08-16 14:46:38 +03:00
committed by Yan Zhulanow
parent cea891c754
commit 187ca71dc6
2 changed files with 30 additions and 2 deletions
+23
View File
@@ -18,5 +18,28 @@ fun box(): String {
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)
}