anchor.diff:    @override
     visitForEachStatement(ForEachStatement node) {
       if (entity == node.inKeyword) {
  -      Token previous = node.inKeyword.previous;
  +      Token previous = node.findPrevious(node.inKeyword);
         if (previous is SyntheticStringToken && previous.lexeme == 'in') {
  -        previous = previous.previous;
  +        previous = node.findPrevious(previous);
         }
         if (previous != null && previous.type == TokenType.EQ) {
           _addSuggestions([
  
positive.code:     }
      if (entity == node.rightParenthesis) {
        _addExpressionKeywords(node);
        Token previous = (entity as Token).previous;
        if (previous.isSynthetic) {
          previous = previous.previous;
        }
        if (previous.lexeme == ')') {
          _addSuggestion(Keyword.ASYNC);
  
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;
  