blob: 2832dee6e90dfc88d7499aa89347b912c268e765 [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 An expression statement consists of an expression other than a
/// non-constant map literal that has no explicit type arguments.
/// The restriction on maps is designed to resolve an ambiguity in the grammar,
/// expressionStatement:
/// expression? ‘;’
/// ;
/// Execution of an expression statement e; proceeds by evaluating e.
/// It is a compile-time error if a non-constant map literal that has no explicit
/// type arguments appears in a place where a statement is expected.
/// @description Checks that execution of an expression statement e; proceeds by
/// evaluating e.
/// @author vasya
import '../../../Utils/expect.dart';
foo(x, y, z) { return x + y - z; }
var v;
bar() {
v = 1;
}
bar2() {
v = 2;
}
main() {
dynamic e = 1 + 6 / 3 * 12;
Expect.equals(25, e);
e = true || false;
Expect.equals(true, e);
e = "A" "B";
Expect.equals("AB", e);
e = foo(0, 1, 2);
Expect.equals(-1, e);
bar();
Expect.equals(1, v);
false ? bar() : bar2();
Expect.equals(2, v);
true || false;
}