Merge remote branch 'origin/master'
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
class Base() {
|
||||
public var v : Int
|
||||
}
|
||||
|
||||
class Left() : Base() {}
|
||||
class Right() : Base() {}
|
||||
|
||||
class D() : Left(), Right()
|
||||
|
||||
fun vl(l : Left) : Int = l.v
|
||||
fun vr(r : Right) : Int = r.v
|
||||
|
||||
fun box() : String {
|
||||
val d = new D()
|
||||
d.v = 42
|
||||
|
||||
if (d.v != 42) return "Fail #1"
|
||||
if (vl(d) != 42) return "Fail #2"
|
||||
if (vr(d) != 42) return "Fail #3"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class Left() {}
|
||||
class Right() {
|
||||
virtual fun f() = 42
|
||||
}
|
||||
|
||||
class D() : Left(), Right() {
|
||||
override fun f() = 239
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val r : Right = new Right()
|
||||
val d : D = new D()
|
||||
|
||||
if (r.f() != 42) return "Fail #1"
|
||||
if (d.f() != 239) return "Fail #2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
class Wrapper<T>() {
|
||||
fun castToSelf(wrapper: Any) = wrapper as? Wrapper<T>
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
val wrapper = new Wrapper<Int>()
|
||||
return wrapper.castToSelf(new Wrapper<String>())
|
||||
}
|
||||
Reference in New Issue
Block a user