| /* |
| * Copyright (c) 2011, 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. |
| */ |
| /** |
| * @assertion In checked mode, execution of an assert statement assert(e); proceeds as follows: |
| * The conditional expression e is evaluated to an object o. If the class of o is |
| * a subtype of Function then let r be the result of invoking o with no arguments. |
| * Otherwise, let r be o. It is a dynamic type error if o is not of type bool or |
| * of type Function, or if r is not of type bool. If r is false, we say that the |
| * assertion failed. If r is true, we say that the assertion succeeded. If the assertion |
| * succeeded, execution of the assert statement is complete. If the assertion failed, |
| * an AssertionError is thrown. |
| * @description Checks that the assert statement succeeds if the conditional expression |
| * evaluates to either true or () => true. |
| * @author rodionov |
| * @reviewer iefremov |
| */ |
| import "../../Utils/expect.dart"; |
| |
| import "../../Utils/dynamic_check.dart"; |
| |
| bool t() {return true;} |
| bool f() {return false;} |
| |
| bool flag = false; |
| bool check() {flag = true; return flag;} |
| |
| main() { |
| assert(check()); |
| if(isCheckedMode()) { |
| Expect.isTrue(flag); |
| } |
| assert(true); |
| assert(true ? true : true); |
| assert((1 > 0 ? true && true : true || false)); |
| assert(() => true); |
| assert(t); |
| assert("string".contains("tri") ? t : f); |
| assert("string".contains("tri") ? (() => true) : (() => false)); |
| } |