blob: dd552520a2671c7cf585c2eb9a284874f031c429 [file] [log] [blame]
// Copyright (c) 2015, 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.9
import "package:expect/expect.dart";
import "inheritance_chain_lib.dart";
class A extends B {
get id => "A";
get length => 1;
}
class C extends D {
get id => "C";
get length => 3;
}
class X extends W {
get id => "X";
get length => -3;
}
class Z extends Y {
get id => "Z";
get length => -1;
}
main() {
var instances = <dynamic>[
new A(),
new B(),
new C(),
new D(),
new W(),
new X(),
new Y(),
new Z(),
[],
];
var o = instances[0];
Expect.equals("A", o.id);
Expect.equals(1, o.length);
Expect.isTrue(o is A);
Expect.isTrue(o is B);
Expect.isTrue(o is C);
Expect.isTrue(o is D);
Expect.isTrue(o is W);
Expect.isTrue(o is X);
Expect.isTrue(o is Y);
Expect.isTrue(o is Z);
o = instances[1];
Expect.equals("B", o.id);
Expect.equals(2, o.length);
Expect.isTrue(o is B);
Expect.isTrue(o is C);
Expect.isTrue(o is D);
Expect.isTrue(o is W);
Expect.isTrue(o is X);
Expect.isTrue(o is Y);
Expect.isTrue(o is Z);
o = instances[2];
Expect.equals("C", o.id);
Expect.equals(3, o.length);
Expect.isTrue(o is C);
Expect.isTrue(o is D);
Expect.isTrue(o is W);
Expect.isTrue(o is X);
Expect.isTrue(o is Y);
Expect.isTrue(o is Z);
o = instances[3];
Expect.equals("D", o.id);
Expect.equals(4, o.length);
Expect.isTrue(o is D);
Expect.isTrue(o is W);
Expect.isTrue(o is X);
Expect.isTrue(o is Y);
Expect.isTrue(o is Z);
o = instances[4];
Expect.equals("W", o.id);
Expect.equals(-4, o.length);
Expect.isTrue(o is W);
o = instances[5];
Expect.equals("X", o.id);
Expect.equals(-3, o.length);
Expect.isTrue(o is X);
Expect.isTrue(o is W);
o = instances[6];
Expect.equals("Y", o.id);
Expect.equals(-2, o.length);
Expect.isTrue(o is Y);
Expect.isTrue(o is X);
Expect.isTrue(o is W);
o = instances[7];
Expect.equals("Z", o.id);
Expect.equals(-1, o.length);
Expect.isTrue(o is Z);
Expect.isTrue(o is Y);
Expect.isTrue(o is X);
Expect.isTrue(o is W);
o = instances[8];
Expect.equals(0, o.length);
}