anchor.diff:      }
       if (entity == node.rightParenthesis) {
         _addExpressionKeywords(node);
  -      Token previous = (entity as Token).previous;
  +      Token previous = node.findPrevious(entity as Token);
         if (previous.isSynthetic) {
  -        previous = previous.previous;
  +        previous = node.findPrevious(previous);
         }
         if (previous.lexeme == ')') {
           _addSuggestion(Keyword.ASYNC);
  
positive.code:       Expression expression = (entity as ExpressionStatement).expression;
        if (expression is SimpleIdentifier) {
          Token token = expression.token;
          Token previous = token.previous;
          if (previous.isSynthetic) {
            previous = previous.previous;
          }
          Token next = token.next;
          if (next.isSynthetic) {
  
negative.code:   static bool _isPreviousTokenSynthetic(Object entity, TokenType type) {
      if (entity is AstNode) {
        Token token = entity.beginToken;
        Token previousToken = entity.findPrevious(token);
        return previousToken.isSynthetic && previousToken.type == type;
      }
      return false;
  