e7e80be34a
Before this commit we considered !isOverride as a sign that function / field / accessor has no overridden symbols. However, it's false for deserialized, because isOverride is always false there. This commit fixes 68 BB tests but breaks 25 BB tests (not yet muted)
28 lines
794 B
Kotlin
Vendored
28 lines
794 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
// WITH_RUNTIME
|
|
// KT-4485 getGenericInterfaces vs getInterfaces for kotlin classes
|
|
|
|
class SimpleClass
|
|
|
|
class ClassWithNonGenericSuperInterface: Cloneable
|
|
|
|
class ClassWithGenericSuperInterface: java.util.Comparator<String> {
|
|
override fun compare(a: String, b: String): Int = 0
|
|
}
|
|
|
|
fun check(klass: Class<*>) {
|
|
val interfaces = klass.getInterfaces().toList()
|
|
val genericInterfaces = klass.getGenericInterfaces().toList()
|
|
if (interfaces.size != genericInterfaces.size) {
|
|
throw AssertionError("interfaces=$interfaces, genericInterfaces=$genericInterfaces")
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
check(SimpleClass::class.java)
|
|
check(ClassWithNonGenericSuperInterface::class.java)
|
|
check(ClassWithGenericSuperInterface::class.java)
|
|
return "OK"
|
|
}
|