[FIR] Report MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES
Reporting it for `VIRTUAL_MEMBER_HIDDEN` is ok, because `VIRTUAL_MEMBER_HIDDEN` has always been an error, so we are allowed to treat these as overrides implicitly. ^KT-59408 Fixed ^KT-59419 Fixed ^KT-57076 Fixed
This commit is contained in:
committed by
Space Team
parent
0dd36ad456
commit
3f1bf6112f
+3
-1
@@ -1,4 +1,6 @@
|
||||
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6
|
||||
// IGNORE_BACKEND_K1: JS, JS_IR, JS_IR_ES6
|
||||
// IGNORE_BACKEND_K2: ANY
|
||||
// STATUS: This must be red code anyway, KT-36188
|
||||
|
||||
// The code in this test should be prohibited in the frontend, see KT-36188.
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6
|
||||
// IGNORE_BACKEND_K1: JS, JS_IR, JS_IR_ES6
|
||||
// IGNORE_BACKEND_K2: ANY
|
||||
// STATUS: This must be red code anyway, KT-36188
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// IGNORE_BACKEND: JS
|
||||
// IGNORE_BACKEND_K2: ANY
|
||||
// STATUS: This must be red code anyway, KT-36188
|
||||
|
||||
// Test for KT-36188 bug compatibility between non-IR and IR backends
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// IGNORE_BACKEND: JS
|
||||
// IGNORE_BACKEND_K2: ANY
|
||||
// STATUS: This must be red code anyway, KT-36188
|
||||
|
||||
// Test for KT-36188 bug compatibility between non-IR and IR backends
|
||||
|
||||
|
||||
+2
-2
@@ -17,10 +17,10 @@ interface B {
|
||||
fun foo(@An a: @An Int = @An 2)
|
||||
}
|
||||
|
||||
class AB1 : A, B
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE("@An() a: @R|An|() Int = ...")!>class AB1<!> : A, B
|
||||
|
||||
@An
|
||||
class AB2 : A, B {
|
||||
@An
|
||||
override fun foo(@An a: @An Int) {}
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES("@An() a: @R|An|() Int")!>@An a: @An Int<!>) {}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
fun child(props: Int = 20)
|
||||
}
|
||||
|
||||
interface SomeRandomOverride<J> : SomeRandomBase<J>
|
||||
|
||||
open class Keker<P> {
|
||||
open fun child(props: Int = 10) {}
|
||||
}
|
||||
|
||||
class Implementation<P>() : Keker<P>(), SomeRandomOverride<P> {
|
||||
override fun child(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>props: Int<!>) {}
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
fun child(props: Int = 20)
|
||||
}
|
||||
|
||||
interface SomeRandomOverride<J> : SomeRandomBase<J> {
|
||||
override fun child(props: Int) {}
|
||||
}
|
||||
|
||||
open class Keker<P> {
|
||||
open fun child(props: Int = 10) {}
|
||||
}
|
||||
|
||||
class Implementation<P>() : Keker<P>(), SomeRandomOverride<P> {
|
||||
override fun child(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>props: Int<!>) {}
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
fun child(props: Int = 20)
|
||||
}
|
||||
|
||||
interface SomeRandomOverride<J> : SomeRandomBase<J> {
|
||||
override abstract fun child(props: Int)
|
||||
}
|
||||
|
||||
open class Keker<P> {
|
||||
open fun child(props: Int = 10) {}
|
||||
}
|
||||
|
||||
class Implementation<P>() : Keker<P>(), SomeRandomOverride<P> {
|
||||
override fun child(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>props: Int<!>) {}
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// ISSUE: KT-36188
|
||||
|
||||
interface SomeRandomBase<K> {
|
||||
|
||||
@@ -10,5 +10,5 @@ interface Y {
|
||||
|
||||
object YImpl : Y
|
||||
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class Z1<!> : X, Y by YImpl {}
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>object Z1O<!> : X, Y by YImpl {}
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE, MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>class Z1<!> : X, Y by YImpl {}
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE, MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>object Z1O<!> : X, Y by YImpl {}
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
interface Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
class Z : X, Y {
|
||||
override fun foo(a : Int) {}
|
||||
}
|
||||
|
||||
object ZO : X, Y {
|
||||
override fun foo(a : Int) {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
interface Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
class Z : X, Y {
|
||||
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>a : Int<!>) {}
|
||||
}
|
||||
|
||||
object ZO : X, Y {
|
||||
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>a : Int<!>) {}
|
||||
}
|
||||
Vendored
-1
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ interface C {
|
||||
}
|
||||
|
||||
// TODO DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES reported twice
|
||||
class Z : A, B(), C
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>class Z<!> : A, B(), C
|
||||
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
interface Y {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class Z1<!> : X, Y {} // BUG
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>object Z1O<!> : X, Y {} // BUG
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface X {
|
||||
fun foo(a : Int = 1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user