anchor.diff:        }
       } else if (kind == OPEN_PAREN_TOKEN) {
         return parseParenthesizedExpressionOrFunctionLiteral(token);
  -    } else if (kind == OPEN_SQUARE_BRACKET_TOKEN || token.stringValue == '[]') {
  +    } else if (kind == OPEN_SQUARE_BRACKET_TOKEN || optional('[]', token)) {
         listener.handleNoTypeArguments(token);
         return parseLiteralListSuffix(token, null);
       } else if (kind == OPEN_CURLY_BRACKET_TOKEN) {
  
positive.code:         (identical(kind, FUNCTION_TOKEN) ||
              identical(kind, OPEN_CURLY_BRACKET_TOKEN) ||
              (identical(kind, KEYWORD_TOKEN) &&
                  (nextToken.lexeme == 'async' || nextToken.lexeme == 'sync')))) {
        listener.handleNoTypeVariables(token);
        return parseUnnamedFunction(token);
      } else {
  
negative.code:     } else if (kind == HASH_TOKEN) {
        return parseLiteralSymbol(token);
      } else if (kind == KEYWORD_TOKEN) {
        final String value = token.stringValue;
        if (identical(value, "true") || identical(value, "false")) {
          return parseLiteralBool(token);
        } else if (identical(value, "null")) {
          return parseLiteralNull(token);
        } else if (identical(value, "this")) {
          return parseThisExpression(token);
        } else if (identical(value, "super")) {
          return parseSuperExpression(token);
        } else if (identical(value, "new")) {
          return parseNewExpression(token);
        } else if (identical(value, "const")) {
          return parseConstExpression(token);
        } else if (identical(value, "void")) {
          return parseFunctionExpression(token);
        } else if (asyncState != AsyncModifier.Sync &&
            (identical(value, "yield") || identical(value, "async"))) {
          return expressionExpected(token);
        } else if (token.isIdentifier()) {
          return parseSendOrFunctionLiteral(token);
  