| // 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. | |
| // Check that initializers are not duplicated | |
| class Class { | |
| Class(v) | |
| : field_ = v, | |
| // Test against duplicate final field initialization in initializing list. | |
| field_ = 2; | |
| // ^^^^^^ | |
| // [analyzer] COMPILE_TIME_ERROR.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS | |
| // [cfe] 'field_' was already initialized by this constructor. | |
| Class.field(this.field_) | |
| // Test against duplicate final field initialization between initializing | |
| // formals and initializer list. | |
| : field_ = 2; | |
| // ^^^^^^ | |
| // [analyzer] COMPILE_TIME_ERROR.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER | |
| // [cfe] 'field_' was already initialized by this constructor. | |
| // Test against duplicate final field initialization in initializing formals. | |
| Class.two_fields( | |
| this.field_, | |
| this.field_, | |
| // ^^^^^^ | |
| // [analyzer] COMPILE_TIME_ERROR.DUPLICATE_FIELD_FORMAL_PARAMETER | |
| // [cfe] 'field_' was already initialized by this constructor. | |
| // [cfe] Duplicated parameter name 'field_'. | |
| ); | |
| final field_; | |
| } | |
| main() { | |
| new Class(42); | |
| new Class.field(42); | |
| new Class.two_fields(42, 42); | |
| } |