Files
kotlin-fork/compiler/testData/codegen/box/defaultArguments/superCallCheck.kt
T
Anton Bannykh 03e46ce0ca JS: more default arguments fixes (KT-24413, KT-21968 fixed)
MPP-related:
* inherited from interfaces
* inherited body from interface
* default arguments in an interface, implemented by a class delegate
* super call of a method with default argument

Also:
* inheritance from an interface and another interface descendant (KT-21968)
* inheritance through an intermediate interface
2018-05-28 15:27:21 +03:00

29 lines
713 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_RUNTIME
open class MyClass {
fun def(i: Int = 0): Int {
return i
}
}
fun box():String {
val method = MyClass::class.java.getMethod("def\$default", MyClass::class.java, Int::class.java, Int::class.java, Any::class.java)
val result = method.invoke(null, MyClass(), -1, 1, null)
if (result != 0) return "fail 1: $result"
var failed = false
try {
method.invoke(null, MyClass(), -1, 1, "fail")
}
catch(e: Exception) {
val cause = e.cause
if (cause is UnsupportedOperationException && cause.message!!.startsWith("Super calls")) {
failed = true
}
}
return if (!failed) "fail" else "OK"
}