Mark expressions for correct recognition by "unreachable code"

This commit is contained in:
Andrey Breslav
2013-12-03 21:00:08 +04:00
parent 6a4043c9a0
commit 11fcd64949
15 changed files with 155 additions and 34 deletions
@@ -0,0 +1,55 @@
fun foo(<!UNUSED_PARAMETER!>a<!>: Any) {}
fun bar(<!UNUSED_PARAMETER!>a<!>: Any, <!UNUSED_PARAMETER!>b<!>: Any) {}
fun test(arr: Array<Int>) {
while (true) {
<!UNREACHABLE_CODE!>foo<!>(break)
}
while (true) {
<!UNREACHABLE_CODE!>bar<!>(arr, break)
}
while (true) {
<!UNREACHABLE_CODE!>arr[break]<!>
}
while (true) {
<!UNREACHABLE_CODE!>arr[1]<!> = break
}
while (true) {
break
<!UNREACHABLE_CODE!>foo(1)<!>
}
while (true) {
var <!UNUSED_VARIABLE!>x<!> = 1
break
<!UNREACHABLE_CODE!>x = 2<!>
}
while (true) {
var <!UNUSED_VARIABLE!>x<!> = 1
<!UNREACHABLE_CODE!>x = break<!>
}
// TODO: bug, should be fixed in CFA
while (true) {
if (1 > 2 && break && 2 > 3) {
}
}
// TODO: bug, should be fixed in CFA
while (true) {
if (1 > 2 || break || 2 > 3) {
}
}
while (true) {
<!USELESS_ELVIS!>break<!> ?: <!UNREACHABLE_CODE!>null<!>
}
}