Don't allow fake override to inherit implementation with wrong return type
#KT-4763 Fixed
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
class B () {}
|
||||
|
||||
open class A(val b : B) {
|
||||
fun a() = object: A(b) {}
|
||||
fun a(): A = object: A(b) {}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
trait A {
|
||||
fun foo(): Object
|
||||
fun foo(): Any
|
||||
}
|
||||
|
||||
open class B {
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
trait A {
|
||||
fun f(): String = "string"
|
||||
}
|
||||
|
||||
open class B {
|
||||
open fun f(): CharSequence = "charSequence"
|
||||
}
|
||||
|
||||
class <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>C<!> : B(), A
|
||||
|
||||
val obj: A = <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>object<!> : B(), A {}
|
||||
@@ -0,0 +1,11 @@
|
||||
trait A {
|
||||
fun f(): String
|
||||
}
|
||||
|
||||
open class B {
|
||||
open fun f(): CharSequence = "charSequence"
|
||||
}
|
||||
|
||||
class <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>C<!> : B(), A
|
||||
|
||||
val d: A = <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>object<!> : B(), A {}
|
||||
@@ -0,0 +1,11 @@
|
||||
trait P {
|
||||
var f: Number
|
||||
}
|
||||
|
||||
open class Q {
|
||||
val x: Int = 42
|
||||
}
|
||||
|
||||
class <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>R<!> : P, Q()
|
||||
|
||||
val s: Q = <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>object<!> : Q(), P {}
|
||||
Reference in New Issue
Block a user