blob: 76847d8ceabb91ca0a01e61ba98901259906692a [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.
import "package:expect/expect.dart";
// Tests that is-tests are also available for superclasses if the class is
// never instantiated and not explicitly tested against.
class A {
}
class B extends A {
}
class C<T> implements A {
}
class D<T,L> {
}
class F {
}
class E<T,L> extends D<L,T> {
}
class G extends F {
}
main () {
var l = [new A(), new B(), new C<E<G, G>>()];
Expect.isTrue(l[0] is A);
Expect.isTrue(l[1] is B);
Expect.isTrue(l[2] is C<D<F, G>>);
for (int i = 0; i < l.length; i++) {
var e = l[i];
Expect.isTrue(e is A);
Expect.equals(e is B, i == 1);
Expect.isFalse(e is C<String>);
Expect.equals(e is C<D<F, G>>, i == 2);
}
}