Index: pkg/front_end/testcases/implicit_scope_test.dart |
diff --git a/pkg/front_end/testcases/implicit_scope_test.dart b/pkg/front_end/testcases/implicit_scope_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..49d0dd95c03d8b6deb92b82eb21fdd0160ccf4ec |
--- /dev/null |
+++ b/pkg/front_end/testcases/implicit_scope_test.dart |
@@ -0,0 +1,40 @@ |
+// 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(); |
+} |