Prohibit return type mismatch for delegation members

#KT-13952 Fixed
 #KT-13005 Fixed
This commit is contained in:
Denis Zharkov
2016-09-26 20:54:10 +03:00
parent ddb7a6aa13
commit c884cffeea
12 changed files with 306 additions and 5 deletions
@@ -0,0 +1,19 @@
interface IBase1 {
fun foo(): Any
}
open class IDerived1 : IBase1 {
override fun foo(): String = "1"
}
<!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1()
interface IBase2 {
val foo: Any
}
open class IDerived2 : IBase2 {
override val foo: String = "2"
}
<!PROPERTY_TYPE_MISMATCH_BY_DELEGATION!>class Broken2<!>(val b: IBase2) : IBase2 by b, IDerived2()