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,28 @@
var result = ""
trait D1 {
fun foo(): D1 {
result += "D1"
return this
}
}
trait F2 : D1
trait D3 : F2 {
override fun foo(): D3 {
result += "D3"
return this
}
}
class D4 : D3
fun box(): String {
val x = D4()
x.foo()
(x : D3).foo()
(x : F2).foo()
(x : D1).foo()
return if (result == "D3D3D3D3") "OK" else "Fail: $result"
}