blob: fb72d4dfc32177937dea2ae2fc0fe45a864e45d6 [file] [log] [blame]
// 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;
// I1::x depends on y, which depends on C::x. Although C::x overrides I1::x, it
// does not depend on it, since its type is already specified. So there is no
// circularity.
class I1 {
final /*@topType=int*/ x = y;
}
abstract class I2 {
num get x;
}
class C extends Object implements I1, I2 {
int get x => 0;
}
var /*@topType=int*/ y = new C(). /*@target=C::x*/ x;
main() {}