Correct behaviour for break / continue inside function call arguments, including multiple ones. Additional tests.

This commit is contained in:
Mikhail Glukhikh
2015-04-21 14:42:11 +03:00
parent 3702089396
commit fd789cb68e
16 changed files with 188 additions and 2 deletions
@@ -0,0 +1,12 @@
fun foo(x: String): String? = x
fun calc(x: String?): Int {
do {
// Smart cast because of x!! in receiver
foo(x!!)?.subSequence(0, <!DEBUG_INFO_SMARTCAST!>x<!>.length())
// Smart cast because of x!! in receiver
if (<!DEBUG_INFO_SMARTCAST!>x<!>.length() == 0) break
} while (true)
// Here x is also not null
return <!DEBUG_INFO_SMARTCAST!>x<!>.length()
}