blob: 3fdb728941233d37f95acb126d5ccda2b1ebbcd8 [file] [log] [blame]
/*
* 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);
}
} ();
}
}();
}