| Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| index dffb6799ac861dbd73aee0e5806071fd3085aa55..3dc9d755c09d53a8a3b5bc8ce39381691e4e7491 100644
|
| --- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| +++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| @@ -3637,8 +3637,14 @@ public class DartParser extends CompletionHooksParserBase {
|
| * </pre>
|
| */
|
| private DartExpression parseUnaryExpression() {
|
| - // A '+' prefix does not have any effect.
|
| - optional(Token.ADD);
|
| + // There is no unary plus operator in Dart.
|
| + // However, we allow a leading plus in decimal numeric literals.
|
| + if (optional(Token.ADD)) {
|
| + if (peek(0) != Token.INTEGER_LITERAL && peek(0) != Token.DOUBLE_LITERAL) {
|
| + reportError(position(), ParserErrorCode.NO_UNARY_PLUS_OPERATOR);
|
| + }
|
| + }
|
| + // Check for unary minus operator.
|
| Token token = peek(0);
|
| if (token.isUnaryOperator() || token == Token.SUB) {
|
| beginUnaryExpression();
|
|
|