JS: prohibit overriding external functions with optional parameters by non-external fake functions

This commit is contained in:
Alexey Andreev
2016-12-13 14:45:03 +03:00
parent e2dab5ab5c
commit b08afb0e93
5 changed files with 89 additions and 4 deletions
@@ -15,6 +15,10 @@ external interface I {
fun f(x: Int = noImpl)
}
interface J {
fun f(x: Int = 23)
}
open external class D {
open fun f(x: Int)
}
@@ -29,4 +33,18 @@ class F : D(), I {
external class G : D(), I {
override fun f(x: Int) {}
}
}
open class X {
fun f(<!UNUSED_PARAMETER!>x<!>: Int) {}
}
open external class XE {
fun f(x: Int)
}
class <!OVERRIDING_EXTERNAL_FUN_WITH_OPTIONAL_PARAMS_WITH_FAKE!>Y<!> : X(), I
external class YE: XE(), I
class Z : X(), J