Files
kotlin-fork/compiler/testData/diagnostics/tests/override/Delegation.kt
T
2020-08-24 11:06:12 +03:00

50 lines
871 B
Kotlin
Vendored

// FIR_IDENTICAL
package test
interface X {
fun foo(): String? {
return null
}
}
interface Y {
fun foo(): String {
return "foo"
}
}
interface Incompatible {
fun foo(): Int {
return 3
}
}
class Test1(val x: X) : X by x, Y {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>String?<!> {
return null
}
}
class Test2(val x: X) : X by x, Y {
override fun foo(): String {
return "foo"
}
}
class Test3(val y: Y) : X, Y by y {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>String?<!> {
return null
}
}
class Test4(val y: Y) : X, Y by y {
override fun foo(): String {
return "foo"
}
}
class Test5(val y: Y, val x: X) : X by x, Y by y, Incompatible {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Int<!> {
return 3
}
}