| Index: pkg/front_end/testcases/inference/infer_field_override_multiple.dart
|
| diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4003e8cf60ad4f1dbcf8d27863b7128957d9a294
|
| --- /dev/null
|
| +++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart
|
| @@ -0,0 +1,43 @@
|
| +// 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.
|
| +
|
| +/*@testedFeatures=inference*/
|
| +library test;
|
| +
|
| +abstract class A {
|
| + int get x;
|
| +}
|
| +
|
| +abstract class B {
|
| + int get x;
|
| +}
|
| +
|
| +abstract class C {
|
| + num get x;
|
| +}
|
| +
|
| +abstract class D {
|
| + double get x;
|
| +}
|
| +
|
| +// Superclasses have a consistent type for `x` so inferrence succeeds.
|
| +class E extends A implements B {
|
| + var /*@topType=int*/ x;
|
| +}
|
| +
|
| +// Superclasses don't have a consistent type for `x` so inference fails, even if
|
| +// the types are related.
|
| +class F extends A implements C {
|
| + var /*@topType=dynamic*/ x;
|
| +}
|
| +
|
| +class G extends A implements D {
|
| + var /*@topType=dynamic*/ x;
|
| +}
|
| +
|
| +class H extends C implements D {
|
| + var /*@topType=dynamic*/ x;
|
| +}
|
| +
|
| +main() {}
|
|
|