// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_VALUE -VARIABLE_WITH_REDUNDANT_INITIALIZER // SKIP_TXT /* * KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE) * * SECTIONS: dfa * NUMBER: 39 * DESCRIPTION: Raw data flow analysis test * HELPERS: classes, objects, typealiases, functions, enumClasses, interfaces, sealedClasses */ /* * TESTCASE NUMBER: 1 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_1() { val x: String? = null while (true) { println(x ?: break) } x x.length } /* * TESTCASE NUMBER: 2 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_2(y: MutableList) { val x: Int? = null while (true) { y[x ?: break] = 10 } x x.inv() } /* * TESTCASE NUMBER: 3 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_3(y: MutableList) { val x: Int? = null while (true) { y[0] = x ?: break } x x.inv() } // TESTCASE NUMBER: 4 fun case_4() { val x: Int? = null while (true) { x ?: break } x x.inv() } // TESTCASE NUMBER: 5 fun case_5(y: Boolean) { val x: Boolean? = null while (true) { y && (x ?: break) } x x.not() } // TESTCASE NUMBER: 6 fun case_6(y: Boolean) { val x: Boolean? = null while (true) { y || (x ?: break) } x x.not() } // TESTCASE NUMBER: 7 fun case_7(y: Boolean?) { val x: Boolean? = null while (true) { y ?: x ?: break } x x.not() } /* * TESTCASE NUMBER: 8 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_8() { var y: Int = 10 val x: Int? = null while (true) { y += x ?: break } x x.inv() } /* * TESTCASE NUMBER: 9 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_9() { var y: Int = 10 val x: Int? = null while (true) { y -= x ?: break } x x.inv() } /* * TESTCASE NUMBER: 10 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_10() { var y: Int = 10 val x: Int? = null while (true) { val z = y - (x ?: break) } x x.inv() } /* * TESTCASE NUMBER: 11 * UNEXPECTED BEHAVIOUR * ISSUES: KT-24652 */ fun case_11() { var y: Int = 10 val x: Int? = null while (true) { val z = y * (x ?: break) } x x.inv() } // TESTCASE NUMBER: 12 fun case_12() { var y: Int = 10 val x: Int? = null while (true) { y += if (x == null) break else 10 } x x.inv() } // TESTCASE NUMBER: 13 fun case_13() { var y: Int = 10 val x: Int? = null while (true) { val z = y * if (x != null) break else 10 } x x.inv() }