| // Copyright (c) 2014, 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. |
| |
| class C { |
| final double d; |
| const C(this.d); |
| } |
| |
| class D extends C { |
| const D(var d) : super(d); |
| } |
| |
| const intValue = 0; |
| const c = const C(0.0); |
| const d = const C(intValue); |
| // ^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH |
| // [cfe] The argument type 'int' can't be assigned to the parameter type 'double'. |
| // ^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE |
| const e = const D(0.0); |
| const f = const D(intValue); |
| // ^^^^^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_EVAL_THROWS_EXCEPTION |
| // ^ |
| // [cfe] Constant evaluation error: |
| |
| main() { |
| print(c); |
| print(d); |
| print(e); |
| print(f); |
| } |