void (PsiElement element, String contentVariableName, PsiVariable iterator, PsiType contentType, PsiElement childToSkip, CommentTracker commentTracker, StringBuilder out) { if (isIteratorNext(element, iterator, contentType)) { if (!(element.getParent() instanceof PsiExpressionStatement)) { out.append(contentVariableName); } } else { final PsiElement[] children = element.getChildren(); if (children.length == 0) { if (PsiUtil.isJavaToken(element, JavaTokenType.INSTANCEOF_KEYWORD) && out.charAt(out.length() - 1) != ' ') { out.append(' '); } out.append(commentTracker.text(element)); } else { boolean skippingWhiteSpace = false; for (final PsiElement child : children) { if (shouldSkip(iterator, contentType, child) || child.equals(childToSkip)) { skippingWhiteSpace = true; } else if (!(child instanceof PsiWhiteSpace) || !skippingWhiteSpace) { skippingWhiteSpace = false; replaceIteratorNext(child, contentVariableName, iterator, contentType, childToSkip, commentTracker, out); } } } } }