Autocasts implemented

This commit is contained in:
Andrey Breslav
2011-06-12 18:21:35 +04:00
parent 11c0d924a6
commit d64b5b3a74
14 changed files with 345 additions and 52 deletions
+41
View File
@@ -0,0 +1,41 @@
class A() {
fun foo() {}
}
class B() : A() {
fun bar() {}
}
fun f9() {
val a : A?
a?.foo()
a?.<error>bar</error>()
if (a is B) {
<info descr="Automatically cast to B">a</info>.bar()
a.foo()
}
a?.foo()
a?.<error>bar</error>()
if (!(a is B)) {
a?.<error>bar</error>()
a?.foo()
}
if (!(a is B) || <info descr="Automatically cast to B">a</info>.bar() == ()) {
a?.<error>bar</error>()
}
if (!(a is B)) {
return;
}
<info descr="Automatically cast to B">a</info>.bar()
a.foo()
}
fun f10() {
val a : A?
if (!(a is B)) {
return;
}
if (!(a is B)) {
return;
}
}