Allow bare types on the right-hand side of as/as?/is/!is

This commit is contained in:
Andrey Breslav
2013-09-06 17:33:28 +04:00
parent e9e23c0069
commit 5c86a5bd7c
21 changed files with 447 additions and 82 deletions
@@ -0,0 +1,16 @@
trait Either<out A, out B>
trait Left<out A>: Either<A, Nothing>
trait Right<out B>: Either<Nothing, B>
class C1(val v1: Int)
class C2(val v2: Int)
fun _as_left(e: Either<C1, C2>): Any? {
val v = e as? Left
return v: Left<C1>?
}
fun _as_right(e: Either<C1, C2>): Any? {
val v = e as? Right
return v: Right<C2>?
}