| // Copyright (c) 2017, 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.7 |
| |
| /// Test that inlining of constructors with `double` as type argument registers |
| /// that double is need for checking passed values. |
| |
| class C<T> implements D<T> { |
| T a; |
| |
| C.gen(this.a); |
| } |
| |
| class D<T> { |
| factory D.fact(T a) => new C<T>.gen(a); |
| } |
| |
| main() { |
| new C<double>.gen(0.5); //# 01: ok |
| new D<double>.fact(0.5); //# 02: ok |
| <double>[].add(0.5); //# 03: ok |
| <int, double>{}[0] = 0.5; //# 04: ok |
| } |