| // 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 A final variable is a variable whose binding is fixed upon |
| /// initialization; a final variable v will always refer to the same object |
| /// after v has been initialized. The declaration of a final variable must |
| /// include the modifier final. |
| /// It is a static warning if a final instance variable that has been |
| /// initialized at its point of declaration is also initialized in a |
| /// constructor. |
| /// It is a compile-time error if a local variable v is final and v is not |
| /// initialized at its point of declaration. |
| /// |
| /// @note With https://github.com/dart-lang/language/pull/1091/files changes, it |
| /// is not an error to declared a final local variable without an initialized. It |
| /// is an error to read one unless it is definitely assigned. |
| /// |
| /// @description Checks that this is a compile error if local variable is final |
| /// and not initialized at its point of reading. |
| /// @author ilya |
| |
| |
| main() { |
| () { |
| final i; |
| return i; |
| // ^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| } (); |
| } |