blob: b14e480e544c45242ee64f4ec702cac37281492d [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 Postfix expressions invoke the postfix operators on objects.
* postfixExpression:
* assignableExpression postfixOperator |
* primary (selector* | (‘#’ ( (identifier ‘=’?) | operator)))
* ;
* postfixOperator:
* incrementOperator
* ;
* selector:
* assignableSelector |
* arguments
* ;
* incrementOperator:
* '++' |
* '--'
* ;
* A postfix expression is either a primary expression, a function, method or
* getter invocation, or an invocation of a postfix operator on an expression e.
* @description Checks that trying to use map with postfixOperator causes a
* compile error.
* `Operator []` of [Map] returns a nullable type, because it returns [null]
* when the given argument isn't one of the keys of the map. That's why this is
* a compile error here. Operator ?++ is not supported for Maps currently.
* @compile-error
* @author iarkh
*/
main() {
var a = {1: 1, 2: 2, 3: 3}[1]++;
}