Generate bridges for fake overrides when needed

#KT-3985 Fixed
 #KT-4145 Fixed
This commit is contained in:
Alexander Udalov
2014-03-27 19:33:42 +04:00
parent 2c2c918447
commit 04c237cc22
17 changed files with 300 additions and 97 deletions
@@ -0,0 +1,25 @@
trait D1 {
fun foo(): Any
}
trait D2 {
fun foo(): Number
}
trait F3 : D1, D2
open class D4 {
fun foo(): Int = 42
}
class F5 : F3, D4()
fun box(): String {
val z = F5()
var result = z.foo()
result += (z : D4).foo()
result += (z : F3).foo() as Int
result += (z : D2).foo() as Int
result += (z : D1).foo() as Int
return if (result == 5 * 42) "OK" else "Fail: $result"
}