| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| // Test that if, while etc create an implicit scope if the body | |
| // is not a compound statement. | |
| import "package:expect/expect.dart"; | |
| class ImplicitScopeTest { | |
| static bool alwaysTrue() { | |
| return 1 + 1 == 2; | |
| } | |
| static testMain() { | |
| var a = "foo"; | |
| var b; | |
| if (alwaysTrue()) | |
| var a = "bar"; | |
| else | |
| var b = a; | |
| Expect.equals("foo", a); | |
| Expect.equals(null, b); | |
| while (!alwaysTrue()) var a = "bar", b = "baz"; | |
| Expect.equals("foo", a); | |
| Expect.equals(null, b); | |
| for (int i = 0; i < 10; i++) var a = "bar", b = "baz"; | |
| Expect.equals("foo", a); | |
| Expect.equals(null, b); | |
| do var a = "bar", b = "baz"; while ("black" == "white"); | |
| Expect.equals("foo", a); | |
| Expect.equals(null, b); | |
| } | |
| } | |
| main() { | |
| ImplicitScopeTest.testMain(); | |
| } |