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:     } else if (kind == HASH_TOKEN) {
        return parseLiteralSymbol(token);
      } else if (kind == KEYWORD_TOKEN) {
        final value = token.stringValue;
        if (value == 'true' || value == 'false') {
          return parseLiteralBool(token);
        } else if (value == 'null') {
          return parseLiteralNull(token);
        } else if (value == 'this') {
          return parseThisExpression(token);
        } else if (value == 'super') {
          return parseSuperExpression(token);
        } else if (value == 'new') {
          return parseNewExpression(token);
        } else if (value == 'const') {
          return parseConstExpression(token);
        } else if (value == 'void') {
          return parseFunctionExpression(token);
        } else if (asyncState != AsyncModifier.Sync &&
            (value == 'yield' || value == 'async')) {
          return expressionExpected(token);
        } else if (token.isIdentifier()) {
          return parseSendOrFunctionLiteral(token);
  
negative.code:       if (identical(kind, FUNCTION_TOKEN) ||
            identical(kind, OPEN_CURLY_BRACKET_TOKEN) ||
            (identical(kind, KEYWORD_TOKEN) &&
                (optional('async', nextToken) || optional('sync', nextToken)))) {
          return parseUnnamedFunction(token);
        }
        // Fall through.
  