blob: 0804021f6c229b432685d77fa36a8546a788a328 [file] [log] [blame]
/*
* 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 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
*/
import '../../../Utils/expect.dart';
bool t() {return true;}
bool f() {return false;}
bool flag = false;
bool check() {flag = true; return flag;}
main() {
assert (check());
if (assertStatementsEnabled) {
Expect.isTrue(flag);
}
assert (true);
assert (true ? true : true);
assert ((1 > 0 ? true && true : true || false));
assert (t());
assert ("string".contains("tri") ? t() : f());
}