diff --git a/compiler/testData/checkerWithErrorTypes/full/FlowAnalyseVariables.jet b/compiler/testData/checkerWithErrorTypes/full/FlowAnalyseVariables.jet new file mode 100644 index 00000000000..81a49d26b02 --- /dev/null +++ b/compiler/testData/checkerWithErrorTypes/full/FlowAnalyseVariables.jet @@ -0,0 +1,99 @@ +namespace uninitialized_vals { + +fun t1(b : Boolean) { + val v : Int + if (v == 0) {} + + var u: String + if (b) { + u = "s" + } + doSmth(u) + + var r: String + if (b) { + r = "s" + } + else { + r = "tg" + } + doSmth(r) + + var t: String + if (b) + doSmth(t) + else + t = "ss" + doSmth(t) + + val i = 3 + doSmth(i) + if (b) { + return; + } + doSmth(i) + if (i is Int) { + return; + } +} + +fun t2() { + val s = "ss" + + for (i in 0..2) { + doSmth(s) + } +} + +fun doSmth(s: String) {} +fun doSmth(i: Int) {} + +} + +namespace reassigned_vals { + +fun t1() { + val a : Int = 1 + a = 2 + + var b : Int = 1 + b = 3 +} + +abstract enum class ProtocolState { + WAITING { + override fun signal() = ProtocolState.TALKING + } + + TALKING { + override fun signal() = ProtocolState.WAITING + } + + abstract fun signal() : ProtocolState +} + +fun t2() { + val x: ProtocolState = ProtocolState.WAITING + x = x.signal() + x = x.signal() +} + +fun t3() { + val x = 1 + x += 2 + val y = 3 + y *= 4 + var z = 5 + z -= y +} + +fun t4() { + for (i in 0..2) { + i += 1 + fun t5() { + i += 3 + } + } +} + +} \ No newline at end of file