blob: 5ef90765867789f1548de839049ddf85a8d7d300 [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;
}