blob: 2b41ab506bbc1982e8696cf3b1e832a170d4769e [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.
// @dart = 2.9
/// @assertion The formal parameter list of a function introduces a new scope
/// known as the function's formal parameter scope. The formal parameter scope
/// of a function f is enclosed in the scope where f is declared. Every formal
/// parameter introduces a local variable into the formal parameter scope.
/// The body of a function introduces a new scope known as the function's body
/// scope. The body scope of a function f is enclosed in the scope introduced by
/// the formal parameter scope of f.
/// @description Checks that function scope are enclosed in the scope where it's
/// declared and not the one where it's invoked.
/// @author rodionov
/// @reviewer kaigorodov
f() {
var x = foo;
// ^
// [analyzer] unspecified
// [cfe] unspecified
}
main () {
var foo = 1;
f();
}