// !DIAGNOSTICS: -UNUSED_EXPRESSION // SKIP_TXT /* * KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE) * * SECTIONS: dfa * NUMBER: 18 * DESCRIPTION: Raw data flow analysis test * HELPERS: objects, properties, classes, functions */ // TESTCASE NUMBER: 1 fun case_1(x: Int?) { while (true) { if (x == null) break x x.inv() } } // TESTCASE NUMBER: 2 fun case_2(x: Unit?) { while (true) { if (x === null) continue x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 3 fun case_3(x: Nothing?, f: Boolean) { do { if (x != null) else break x.hashCode() } while (f) } // TESTCASE NUMBER: 4 fun case_4(x: Number?) { for (i in 0..10) { if (x !== null) else { break } x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 5 fun case_5(x: Char?, y: Nothing?, f: Boolean) { do { if (x != y) else continue x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } while (f) } // TESTCASE NUMBER: 6 fun case_6(x: Object?, f: Boolean) { while (f) { if (x !== implicitNullableNothingProperty) else { continue } x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 7 fun case_7(x: Class?, list: List) { for (element in list) { if (x === implicitNullableNothingProperty || false || false || false) { break } x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 8 fun case_8(x: Int?) { for (i in 0..10) { if (false || false || false || x == nullableNothingProperty) continue x x.inv() } } // TESTCASE NUMBER: 9 fun case_9(list: List) { for (element in list) { if (element != implicitNullableNothingProperty && true && true && true) else { break } element element.inv() } } // TESTCASE NUMBER: 10 fun case_10(x: Float?) { while (false) { if (true && true && true && x !== null) else break x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 11 fun case_11(x: Out<*>?, list: List) { for (element in list) { if (x == null) continue & Out<*>?")!>x & Out<*>?")!>x.equals(null) & Out<*>?")!>x.propT & Out<*>?")!>x.propAny & Out<*>?")!>x.propNullableT & Out<*>?")!>x.propNullableAny & Out<*>?")!>x.funT() & Out<*>?")!>x.funAny() & Out<*>?")!>x.funNullableT() & Out<*>?")!>x.funNullableAny() } } // TESTCASE NUMBER: 12 fun case_12(list: List) { for (element in list) { if (element === null) continue element element.inv() } } // TESTCASE NUMBER: 13 fun case_13(x: Map?) { do { if (x != null) else continue & kotlin.collections.Map?")!>x & kotlin.collections.Map?")!>x.equals(null) & kotlin.collections.Map?")!>x.propT & kotlin.collections.Map?")!>x.propAny & kotlin.collections.Map?")!>x.propNullableT & kotlin.collections.Map?")!>x.propNullableAny & kotlin.collections.Map?")!>x.funT() & kotlin.collections.Map?")!>x.funAny() & kotlin.collections.Map?")!>x.funNullableT() & kotlin.collections.Map?")!>x.funNullableAny() } while (false) } // TESTCASE NUMBER: 14 fun case_14(x: MutableCollection?, r: IntRange) { for (i in r) { if (x !== null) else { break } & kotlin.collections.MutableCollection?")!>x & kotlin.collections.MutableCollection?")!>x.equals(null) & kotlin.collections.MutableCollection?")!>x.propT & kotlin.collections.MutableCollection?")!>x.propAny & kotlin.collections.MutableCollection?")!>x.propNullableT & kotlin.collections.MutableCollection?")!>x.propNullableAny & kotlin.collections.MutableCollection?")!>x.funT() & kotlin.collections.MutableCollection?")!>x.funAny() & kotlin.collections.MutableCollection?")!>x.funNullableT() & kotlin.collections.MutableCollection?")!>x.funNullableAny() } } // TESTCASE NUMBER: 15 fun case_15(map: MutableMap, y: Nothing?) { for ((k, v) in map) { if (k != y) else break if (v != y) else continue k k.inv() v v.inv() } } // TESTCASE NUMBER: 16 fun case_16(map: Map) { for ((k, v) in map) { if (k !== implicitNullableNothingProperty && v !== implicitNullableNothingProperty) else { continue } k k.inv() v v.inv() } } // TESTCASE NUMBER: 17 fun case_17(x: T?, f: Boolean) { while (f) { if (x === implicitNullableNothingProperty || false) { break } x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 18 fun case_18(x: T, f: Boolean) { while (f) { if (false || false || false || x == nullableNothingProperty) break x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 19 fun case_19(map: MutableMap, y: Nothing?) { for ((k, v) in map) { if (k !== implicitNullableNothingProperty && true && v != y) else { break } k k.equals(null) k.propT k.propAny k.propNullableT k.propNullableAny k.funT() k.funAny() k.funNullableT() k.funNullableAny() v v.equals(null) v.propT v.propAny v.propNullableT v.propNullableAny v.funT() v.funAny() v.funNullableT() v.funNullableAny() } } // TESTCASE NUMBER: 20 fun case_20(map: MutableMap) { for ((k, v) in map) { if (true && true && true && k !== null && v != null && true) else continue k k.equals(null) k.propT k.propAny k.propNullableT k.propNullableAny k.funT() k.funAny() k.funNullableT() k.funNullableAny() v v.equals(null) v.propT v.propAny v.propNullableT v.propNullableAny v.funT() v.funAny() v.funNullableT() v.funNullableAny() } } // TESTCASE NUMBER: 21 fun case_21(map: MutableMap) { for ((k, v) in map) { if (k == null) continue if (v === null || false) break k k.equals(null) k.propT k.propAny k.propNullableT k.propNullableAny k.funT() k.funAny() k.funNullableT() k.funNullableAny() v v.equals(null) v.propT v.propAny v.propNullableT v.propNullableAny v.funT() v.funAny() v.funNullableT() v.funNullableAny() } } // TESTCASE NUMBER: 22 fun case_22(x: T?) { while (true) { if (x === null) break x x.equals(null) x.propT x.propAny x.propNullableT x.propNullableAny x.funT() x.funAny() x.funNullableT() x.funNullableAny() } } // TESTCASE NUMBER: 23 fun case_23(x: Inv?) { for (i in -10..10) { if (x !== null) else continue & Inv?")!>x & Inv?")!>x.equals(null) & Inv?")!>x.propT & Inv?")!>x.propAny & Inv?")!>x.propNullableT & Inv?")!>x.propNullableAny & Inv?")!>x.funT() & Inv?")!>x.funAny() & Inv?")!>x.funNullableT() & Inv?")!>x.funNullableAny() } } // TESTCASE NUMBER: 24 fun case_24(x: Inv?, y: Nothing?) { do { if (x !== y && true) else continue & Inv?")!>x & Inv?")!>x.equals(null) & Inv?")!>x.propT & Inv?")!>x.propAny & Inv?")!>x.propNullableT & Inv?")!>x.propNullableAny & Inv?")!>x.funT() & Inv?")!>x.funAny() & Inv?")!>x.funNullableT() & Inv?")!>x.funNullableAny() } while (true) } // TESTCASE NUMBER: 25 fun case_25(x: Inv?, y: Nothing?, z: List) { for (i in z) { if (x !== y) else try { break } finally { continue } & Inv?")!>x & Inv?")!>x.equals(null) & Inv?")!>x.propT & Inv?")!>x.propAny & Inv?")!>x.propNullableT & Inv?")!>x.propNullableAny & Inv?")!>x.funT() & Inv?")!>x.funAny() & Inv?")!>x.funNullableT() & Inv?")!>x.funNullableAny() } }