| // Copyright (c) 2019, 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 'dart:_foreign_helper' show JS_EMBEDDED_GLOBAL; |
| import 'dart:_js_shared_embedded_names' show RTI_UNIVERSE; |
| import 'dart:_rti' show isSubtype; |
| |
| import 'package:expect/expect.dart'; |
| |
| bool isSubtypeOf(s, t) => isSubtype(JS_EMBEDDED_GLOBAL('', RTI_UNIVERSE), s, t); |
| |
| void checkSubtype(s, t) => |
| Expect.isTrue(isSubtypeOf(s, t), '$s should be subtype of $t.'); |
| |
| void checkProperSubtype(s, t) { |
| Expect.isTrue(isSubtypeOf(s, t), '$s should be subtype of $t.'); |
| checkSubtypeFailure(t, s); |
| } |
| |
| void checkMutualSubtype(Object s, Object t) { |
| Expect.isTrue(isSubtypeOf(s, t), '$s should be subtype of $t.'); |
| Expect.isTrue(isSubtypeOf(t, s), '$t should be subtype of $s.'); |
| } |
| |
| void checkSubtypeFailure(s, t) => |
| Expect.isFalse(isSubtypeOf(s, t), '$s should not be subtype of $t.'); |