blob: 07ecdd2d9313f293c9087250b229d1737952156d [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 it is a compile-time error when an expression
/// statement begins with a non-constant, non-parameterized map literal, but
/// also it's only a part of the whole expression.
/// @author rodionov
main() {
{"1": 1, "2": 2}["1"] = 0;
// ^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
{"1": 1, "2": 2}.isEmpty == false;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
}