| /* |
| * 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. |
| */ |
| /** |
| * @assertion Dart is lexically scoped. Scopes may nest. A name or declaration d is |
| * available in scope S if d is in the namespace induced by S or if d is available |
| * in the lexically enclosing scope of S. We say that a name or declaration d is in |
| * scope if d is available in the current scope. |
| * It is a compile-time error if there is more than one entity with the same name |
| * declared in the same scope, with the exception of the operator -, where both |
| * a unary and a binary version may coexist. |
| * @description Checks that a nested scope has access to names from enclosing scopes. |
| * @author msyabro |
| * @reviewer iefremov |
| */ |
| import "../../Utils/expect.dart"; |
| |
| var x; |
| |
| main() { |
| func (p) {Expect.equals(p, x);}; |
| x = 1; |
| () { |
| x = 2; |
| func(2); |
| { |
| x = 3; |
| func(3); |
| () { |
| x = 4; |
| func(4); |
| { |
| x = 5; |
| func(5); |
| } |
| } (); |
| } |
| }(); |
| } |