// !DIAGNOSTICS: -UNUSED_EXPRESSION // SKIP_TXT /* * KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE) * * SECTIONS: dfa * NUMBER: 40 * DESCRIPTION: Raw data flow analysis test * HELPERS: classes, objects, typealiases, functions, enumClasses, interfaces, sealedClasses */ /* * TESTCASE NUMBER: 1 * ISSUES: KT-28242 */ fun case_1(x: Any?) { if (x is Int?) { x!!.inv() } } /* * TESTCASE NUMBER: 2 * ISSUES: KT-28242 */ fun case_2(x: Any?) { if (x is Int?) { (x as Int).inv() } } // TESTCASE NUMBER: 3 fun case_3(x: Any?) { if (x is Int?) { x!!.run { inv() } } } // TESTCASE NUMBER: 4 fun case_4(x: Any?) { if (x is Int?) { select(x!!).inv() } } // TESTCASE NUMBER: 5 fun case_5(x: Any?) { x!! if (x is Int?) { x.inv() select(x).inv() } } /* * TESTCASE NUMBER: 6 * UNEXPECTED BEHAVIOUR */ fun case_6(x: Any?) { if (x is Boolean? && x!!) { x.not() select(x).not() } } // TESTCASE NUMBER: 7 fun case_7(x: Boolean?) { if (x != null && x!!) { x.not() select(x).not() } } // TESTCASE NUMBER: 8 fun case_8(x: Any?) { if (x != null && x is Boolean?) { x.not() select(x).not() } } // TESTCASE NUMBER: 9 fun case_9(x: Any?) { if (x is Boolean? && x != null) { x.not() select(x).not() } } // TESTCASE NUMBER: 10 fun case_10(x: Any?) { if (x as Boolean) { x.not() select(x).not() } } /* * TESTCASE NUMBER: 11 * UNEXPECTED BEHAVIOUR * ISSUES: KT-30376 */ fun case_11(x: Any?) { if ((x as Boolean?)!!) { x.not() select(x).not() } } /* * TESTCASE NUMBER: 12 * UNEXPECTED BEHAVIOUR * ISSUES: KT-30376 */ fun case_12(x: Any?) { if (x!! as Boolean?) { x.not() select(x).not() } } /* * TESTCASE NUMBER: 13 * UNEXPECTED BEHAVIOUR * ISSUES: KT-30376 */ fun case_13(x: Any?) { if (x as Boolean? ?: x!!) { x.not() select(x).not() } } /* * TESTCASE NUMBER: 14 * UNEXPECTED BEHAVIOUR * ISSUES: KT-28430 */ fun case_14(x: Any?) { if (x == null) { x x?.equals(10) x!!.equals(10) x.equals(10) } } /* * TESTCASE NUMBER: 15 * UNEXPECTED BEHAVIOUR * ISSUES: KT-28430 */ fun case_15(x: Any?) { if (x !== null) else { x x?.equals(10) x!!.equals(10) x.equals(10) } } /* * TESTCASE NUMBER: 16 * UNEXPECTED BEHAVIOUR * ISSUES: KT-28430 */ fun case_16(x: Nothing?) { x x?.equals(10) x!!.equals(10) x.equals(10) }