anchor.diff:      if (entity is AstNode) {
         Token token = entity.beginToken;
         Token previousToken = entity.findPrevious(token);
  -      return previousToken.isSynthetic && previousToken.type == type;
  +      return previousToken != null &&
  +          previousToken.isSynthetic &&
  +          previousToken.type == type;
       }
       return false;
     }
  
positive.code:     if (entity == node.rightParenthesis) {
        _addExpressionKeywords(node);
        Token previous = node.findPrevious(entity as Token);
        if (previous.isSynthetic) {
          previous = node.findPrevious(previous);
        }
        if (previous.lexeme == ')') {
          _addSuggestion(Keyword.ASYNC);
          _addSuggestion2(ASYNC_STAR);
          _addSuggestion2(SYNC_STAR);
  
negative.code:       if (expression is SimpleIdentifier) {
          Token token = expression.token;
          Token previous = node.findPrevious(token);
          if (previous != null && previous.isSynthetic) {
            previous = node.findPrevious(previous);
          }
          Token next = token.next;
          if (next.isSynthetic) {
            next = next.next;
          }
          if (previous != null &&
              previous.type == TokenType.CLOSE_PAREN &&
              next.type == TokenType.OPEN_CURLY_BRACKET) {
            _addSuggestion(Keyword.ASYNC);
            _addSuggestion2(ASYNC_STAR);
  