| // 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. | |
| /// @description Checks that it is a compile error to initialize final instance | |
| /// variable both in initializing formal and initializer list | |
| /// (Classes/Constructors/Generative Constructors) | |
| /// @author rodionov | |
| class C { | |
| final v; | |
| C(this.v) : v = 1 {} | |
| // ^ | |
| // [analyzer] unspecified | |
| // [cfe] unspecified | |
| } | |
| main() { | |
| new C(1); | |
| } |