Files
kotlin-fork/compiler/testData/diagnostics/tests/override/Delegation.kt
T
2013-09-30 20:54:42 +04:00

49 lines
842 B
Kotlin

package test
trait X {
fun foo(): String? {
return null
}
}
trait Y {
fun foo(): String {
return "foo"
}
}
trait 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
}
}