| // 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 the "is" type test operator. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| check(args) { |
| var list = args[0]; |
| var string = args[1]; |
| var nullObject = args[2]; |
| |
| Expect.isTrue(list is Object); |
| Expect.isTrue(list is List); |
| Expect.isTrue(list is Iterable); |
| Expect.isFalse(list is Comparable); |
| Expect.isFalse(list is Pattern); |
| Expect.isFalse(list is String); |
| |
| Expect.isFalse(list is! List); |
| Expect.isFalse(list is! Iterable); |
| Expect.isTrue(list is! Comparable); |
| Expect.isTrue(list is! Pattern); |
| Expect.isTrue(list is! String); |
| |
| Expect.isTrue(string is Object); |
| Expect.isFalse(string is List); |
| Expect.isFalse(string is Iterable); |
| Expect.isTrue(string is Comparable); |
| Expect.isTrue(string is Pattern); |
| Expect.isTrue(string is String); |
| |
| Expect.isTrue(string is! List); |
| Expect.isTrue(string is! Iterable); |
| Expect.isFalse(string is! Comparable); |
| Expect.isFalse(string is! Pattern); |
| Expect.isFalse(string is! String); |
| |
| Expect.isTrue(nullObject is Object); |
| Expect.isFalse(nullObject is List); |
| Expect.isFalse(nullObject is Iterable); |
| Expect.isFalse(nullObject is Comparable); |
| Expect.isFalse(nullObject is Pattern); |
| Expect.isFalse(nullObject is String); |
| |
| Expect.isTrue(nullObject is! List); |
| Expect.isTrue(nullObject is! Iterable); |
| Expect.isTrue(nullObject is! Comparable); |
| Expect.isTrue(nullObject is! Pattern); |
| Expect.isTrue(nullObject is! String); |
| } |
| |
| main() { |
| // Try to make it hard for an optimizing compiler to inline the |
| // tests. |
| check([[], 'string', null]); |
| |
| // Try to make it even harder. |
| var string = new String.fromCharCodes([new DateTime.now().year % 100 + 1]); |
| check([string.codeUnits, string, null]); |
| } |