Fix CAST_NEVER_SUCCEEDS when casting Nothing to some type

This commit is contained in:
Dmitry Savvinov
2017-10-17 13:45:22 +03:00
parent bd2fd1758f
commit a1778a7da8
5 changed files with 81 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
// !DIAGNOSTICS: -UNREACHABLE_CODE
fun TODO(): Nothing = throw java.lang.IllegalStateException()
open class OpenClass
class FinalClass : OpenClass()
abstract class AbstractClass
interface Interface
fun test() {
TODO() <!USELESS_CAST!>as Any<!>
TODO() <!USELESS_CAST!>as Any?<!>
TODO() <!USELESS_CAST!>as OpenClass<!>
TODO() <!USELESS_CAST!>as FinalClass<!>
TODO() <!USELESS_CAST!>as AbstractClass<!>
TODO() <!USELESS_CAST!>as Interface<!>
val a = TODO() as Any
val b = TODO() as Any?
val c = TODO() as OpenClass
val d = TODO() as FinalClass
val e = TODO() as AbstractClass
val f = TODO() as Interface
}
fun a() = TODO() <!USELESS_CAST!>as Any<!>
fun b() = TODO() <!USELESS_CAST!>as Any?<!>
fun c() = TODO() <!USELESS_CAST!>as OpenClass<!>
fun d() = TODO() <!USELESS_CAST!>as FinalClass<!>
fun e() = TODO() <!USELESS_CAST!>as AbstractClass<!>
fun f() = TODO() <!USELESS_CAST!>as Interface<!>