// 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. import "package:expect/expect.dart"; void testSimpleScope() { { var a = "Test"; int b = 1; } { var c; int? d; Expect.isNull(c); Expect.isNull(d); } } void testShadowingScope() { var a = "Test"; { var a; Expect.isNull(a); a = "a"; Expect.equals(a, "a"); } Expect.equals(a, "Test"); } num testShadowingAfterUse() { var a = 1; { var b = 2; var c = a; // Use of 'a' prior to its shadow declaration below. // ^ // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION // [cfe] Local variable 'a' can't be referenced before it is declared. var d = b + c; // Shadow declaration of 'a'. var a = 5; return d + a; } } main() { testSimpleScope(); testShadowingScope(); testShadowingAfterUse(); }