void (@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater) { final PsiExpression argument = (PsiExpression)startElement; final PsiElement argumentList = PsiUtil.skipParenthesizedExprUp(argument.getParent()); final PsiMethodCallExpression expression = (PsiMethodCallExpression)argumentList.getParent(); final PsiReferenceExpression methodExpression = expression.getMethodExpression(); final PsiExpression qualifier = methodExpression.getQualifierExpression(); final PsiExpression strippedQualifier = PsiUtil.skipParenthesizedExprDown(qualifier); final PsiExpression strippedArgument = PsiUtil.skipParenthesizedExprDown(argument); if (strippedArgument == null || qualifier == null || strippedQualifier == null) { return; } final CommentTracker tracker = new CommentTracker(); tracker.grabComments(qualifier); tracker.markUnchanged(strippedQualifier); tracker.grabComments(argument); tracker.markUnchanged(strippedArgument); final PsiElement newArgument = strippedQualifier.copy(); methodExpression.setQualifierExpression(strippedArgument); argument.replace(newArgument); tracker.insertCommentsBefore(expression); }