| @test |
| operation testForScope() { |
| for (i in 1.to(2)) { |
| var x = 5; |
| for (j in 1.to(2)) { |
| x; |
| var y = 10; |
| } |
| assertError(y); |
| } |
| assertError(x); |
| } |
| |
| @test |
| operation testIfScope() { |
| var z = 10; |
| if (true) { |
| var x = 5; |
| var z = 5; |
| if (true) { |
| x; |
| var y = 10; |
| } |
| assertError(y); |
| } |
| assertError(x); |
| assertEquals(10, z); |
| } |
| |
| @test |
| operation testSwitchScope() { |
| doSwitch("3"); |
| doSwitch("1"); |
| doSwitch(0); |
| } |
| |
| operation doSwitch(s) { |
| switch (s) { |
| case "1": var a = 6; |
| case "3": var i = s+9; |
| assertEquals(i, "39"); |
| return; |
| } |
| assertFalse(a.isDefined()); |
| } |