Checks for default parameter value consistency
Inheriting default values from multiple superclasses is prohibited
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
trait Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
trait YSub : Y {
|
||||
|
||||
}
|
||||
|
||||
class Z2 : Y, YSub {
|
||||
override fun foo(a : Int) {}
|
||||
}
|
||||
|
||||
class Z2O : Y, YSub {
|
||||
override fun foo(a : Int) {}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
trait X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
trait Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
class Z : X, Y {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>a<!> : Int) {}
|
||||
}
|
||||
|
||||
object ZO : X, Y {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>a<!> : Int) {}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
trait X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
trait Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
class Z : X, Y {
|
||||
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(a : Int) {}
|
||||
}
|
||||
|
||||
object ZO : X, Y {
|
||||
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(a : Int) {}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
trait X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
trait Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
class <!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>Z1<!> : X, Y {} // BUG
|
||||
object <!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>Z1O<!> : X, Y {} // BUG
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
trait X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
trait Y {
|
||||
fun foo(a : Int)
|
||||
}
|
||||
|
||||
class Z : X, Y {
|
||||
override fun foo(a : Int) {}
|
||||
}
|
||||
Reference in New Issue
Block a user