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
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
// See KT-21968
|
||||
|
||||
interface A {
|
||||
fun f(cause: Int? = null): Boolean
|
||||
}
|
||||
|
||||
open class B : A {
|
||||
override fun f(cause: Int?): Boolean = true
|
||||
}
|
||||
|
||||
class D : B(), A
|
||||
|
||||
fun box(): String {
|
||||
return if (D().f()) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// IGNORE_BACKEND: JVM
|
||||
// See KT-15971
|
||||
|
||||
interface Foo {
|
||||
fun foo(a: Double = 1.0): Double
|
||||
}
|
||||
|
||||
interface FooChain: Foo
|
||||
|
||||
open class Impl {
|
||||
fun foo(a: Double) = a
|
||||
}
|
||||
|
||||
class FooImpl : FooChain, Impl()
|
||||
|
||||
fun box(): String {
|
||||
if (FooImpl().foo() != 1.0) return "fail"
|
||||
if (FooImpl().foo(2.0) != 2.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user