| // 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 'package:expect/expect.dart'; |
| |
| void main() { |
| conditionalTest(); |
| orTest(); |
| andTest(); |
| ifTest(); |
| forTest(); |
| whileTest(); |
| doTest(); |
| notTest(); |
| } |
| |
| void expectError(Function() callback) { |
| if (hasUnsoundNullSafety) { |
| Expect.throwsAssertionError(callback); |
| } else { |
| Expect.throwsTypeError(callback); |
| } |
| } |
| |
| void conditionalTest() { |
| dynamic x = null; |
| expectError(() => x ? 1 : 0); |
| } |
| |
| void orTest() { |
| dynamic x = null; |
| expectError(() => x || x); |
| expectError(() => x || false); |
| expectError(() => x || true); |
| expectError(() => false || x); |
| Expect.isTrue(true || x); |
| } |
| |
| void andTest() { |
| dynamic x = null; |
| expectError(() => x && x); |
| expectError(() => x && false); |
| expectError(() => x && true); |
| Expect.isFalse(false && x); |
| expectError(() => true && x); |
| } |
| |
| void ifTest() { |
| dynamic x = null; |
| expectError(() { |
| if (x) {} |
| }); |
| } |
| |
| void forTest() { |
| dynamic x = null; |
| expectError(() { |
| for (; x;) {} |
| }); |
| } |
| |
| void whileTest() { |
| dynamic x = null; |
| expectError(() { |
| while (x) {} |
| }); |
| } |
| |
| void doTest() { |
| dynamic x = null; |
| expectError(() { |
| do {} while (x); |
| }); |
| } |
| |
| void notTest() { |
| dynamic x = null; |
| expectError(() => !x); |
| } |