[FIR] Implement RETURN_TYPE_MISMATCH_BY_DELEGATION diagnostic
This commit is contained in:
committed by
teamcityserver
parent
94da1e37aa
commit
8c7ee0b714
+4
-4
@@ -10,9 +10,9 @@ interface Three {
|
||||
public fun foo(): String
|
||||
}
|
||||
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test123<!>(val v1: One, val v2: Two, val v3: Three) : One by v1, Two by v2, Three by v3 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test132<!>(val v1: One, val v2: Two, val v3: Three) : One by v1, Three by v3, Two by v2 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test123<!>(val v1: One, val v2: Two, val v3: Three) : One by v1, Two by v2, Three by v3 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test132<!>(val v1: One, val v2: Two, val v3: Three) : One by v1, Three by v3, Two by v2 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class Test312<!>(val v1: One, val v2: Two, val v3: Three) : Three by v3, One by v1, Two by v2 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class Test321<!>(val v1: One, val v2: Two, val v3: Three) : Three by v3, Two by v2, One by v1 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test231<!>(val v1: One, val v2: Two, val v3: Three) : Two by v2, Three by v3, One by v1 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test213<!>(val v1: One, val v2: Two, val v3: Three) : Two by v2, One by v1, Three by v3 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test231<!>(val v1: One, val v2: Two, val v3: Three) : Two by v2, Three by v3, One by v1 { }
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test213<!>(val v1: One, val v2: Two, val v3: Three) : Two by v2, One by v1, Three by v3 { }
|
||||
|
||||
+8
-8
@@ -32,28 +32,28 @@ class CGeneric<T> : IGeneric<T> {
|
||||
}
|
||||
}
|
||||
|
||||
abstract <!RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test1<!> : IStr by CStr(), IInt
|
||||
abstract <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test1<!> : IStr by CStr(), IInt
|
||||
|
||||
abstract <!RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test2<!> : IStr, IInt by CInt()
|
||||
abstract <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test2<!> : IStr, IInt by CInt()
|
||||
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test3<!> : IStr by CStr(), IInt by CInt()
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test3<!> : IStr by CStr(), IInt by CInt()
|
||||
|
||||
abstract class Test4 : IStr by CStr(), IGeneric<String>
|
||||
|
||||
abstract class Test5 : IStr by CStr(), IGeneric<Any>
|
||||
|
||||
abstract <!RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test6<!> : IStr by CStr(), IGeneric<Int>
|
||||
abstract <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test6<!> : IStr by CStr(), IGeneric<Int>
|
||||
|
||||
abstract class Test7 : IGeneric<String> by CGeneric<String>(), IStr
|
||||
|
||||
abstract <!RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test8<!> : IGeneric<String> by CGeneric<String>(), IInt
|
||||
abstract <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test8<!> : IGeneric<String> by CGeneric<String>(), IInt
|
||||
|
||||
// Can't test due to https://youtrack.jetbrains.com/issue/KT-10258
|
||||
// abstract class Test9 : IGeneric<String> by CGeneric<String>(), IGeneric<Int>
|
||||
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test10<!> : IInt by CInt(), IStr by CStr(), IAny by CAny()
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test10<!> : IInt by CInt(), IStr by CStr(), IAny by CAny()
|
||||
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test11<!> : IInt, IStr by CStr(), IAny by CAny()
|
||||
abstract <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test11<!> : IInt, IStr by CStr(), IAny by CAny()
|
||||
|
||||
abstract <!RETURN_TYPE_MISMATCH_ON_INHERITANCE!>class Test12<!> : IInt, IStr, IAny by CAny()
|
||||
abstract <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Test12<!> : IInt, IStr, IAny by CAny()
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ open class IDerived1 : IBase1 {
|
||||
override fun foo(): String = "1"
|
||||
}
|
||||
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1()
|
||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE, RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1()
|
||||
|
||||
interface IBase2 {
|
||||
val foo: Any
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ interface IDerived1 {
|
||||
fun foo(): String
|
||||
}
|
||||
|
||||
class Broken1(val b: IBase1) : IBase1 by b, IDerived1
|
||||
<!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1
|
||||
|
||||
interface IBase2 {
|
||||
val foo: Any
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ object AImpl : IA {
|
||||
override fun foo() = 42
|
||||
}
|
||||
|
||||
open class C : IA by AImpl, IB
|
||||
open <!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class C<!> : IA by AImpl, IB
|
||||
|
||||
class D : C() {
|
||||
override fun foo(): Double = 3.14
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ interface IDerived1 : IBase1 {
|
||||
override fun foo(): String
|
||||
}
|
||||
|
||||
class Broken1(val b: IBase1) : IBase1 by b, IDerived1
|
||||
<!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1
|
||||
|
||||
interface IBase2 {
|
||||
val foo: Any
|
||||
|
||||
Reference in New Issue
Block a user