// Copyright (c) 2012, 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 test program for testing the instanceof operation. abstract class I { } abstract class AI implements I { } class A implements AI { const A(); } class B implements I { const B(); } class C extends A { const C() : super(); } class InstanceofTest { static testMain() { var a = new A(); var b = new B(); var c = new C(); var n = null; Expect.equals(true, a is A); Expect.equals(true, b is B); Expect.equals(true, c is C); Expect.equals(true, c is A); Expect.equals(true, a is AI); Expect.equals(true, a is I); Expect.equals(false, b is AI); Expect.equals(true, b is I); Expect.equals(true, c is AI); Expect.equals(true, c is I); Expect.equals(false, n is AI); Expect.equals(false, n is I); Expect.equals(false, a is B); Expect.equals(false, a is C); Expect.equals(false, b is A); Expect.equals(false, b is C); Expect.equals(false, c is B); Expect.equals(false, n is A); Expect.equals(false, null is A); Expect.equals(false, null is B); Expect.equals(false, null is C); Expect.equals(false, null is AI); Expect.equals(false, null is I); { var a = new List.fixedLength(5); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(true, a is List); } { var a = new List.fixedLength(5); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(false, a is List); Expect.equals(false, a is List); Expect.equals(false, a is List); } { var a = new List.fixedLength(5); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(false, a is List); } { var a = new List.fixedLength(5); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(false, a is List); Expect.equals(true, a is List); Expect.equals(false, a is List); } { var a = new List.fixedLength(5); Expect.equals(true, a is List); Expect.equals(true, a is List); Expect.equals(false, a is List); Expect.equals(false, a is List); Expect.equals(true, a is List); } } } main() { // Repeat type checks so that inlined tests can be tested as well. for (int i = 0; i < 5; i++) { InstanceofTest.testMain(); } }