void (@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) { final PsiCallExpression expression = PsiTreeUtil.getParentOfType(element, PsiCallExpression.class); if (expression == null) { return; } final PsiExpressionList argumentList = expression.getArgumentList(); if (argumentList == null) { return; } final PsiExpression[] arguments = argumentList.getExpressions(); if (arguments.length != 1) { return; } final PsiExpression unboxedExpression = PsiUtil.skipParenthesizedExprDown(arguments[0]); if (unboxedExpression == null) { return; } final PsiType unboxedExpressionType = unboxedExpression.getType(); if (unboxedExpressionType == null) { return; } final CommentTracker commentTracker = new CommentTracker(); if (unboxedExpressionType.getCanonicalText().equals("java.lang.String")) { PsiMethodCallExpression methodCall = (PsiMethodCallExpression)expression; final String parseMethodName = JavaPsiBoxingUtils.getParseMethod(methodCall.getType()); if (parseMethodName == null) { return; } ExpressionUtils.bindCallTo(methodCall, parseMethodName); return; } final Object value = ExpressionUtils.computeConstantExpression(unboxedExpression); if (value != null && !(unboxedExpression instanceof PsiReferenceExpression)) { if (value == Boolean.TRUE) { PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.TRUE", commentTracker); return; } else if (value == Boolean.FALSE) { PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.FALSE", commentTracker); return; } } final String replacementText = getUnboxedExpressionText(unboxedExpression, expression, commentTracker); if (replacementText == null) { return; } PsiReplacementUtil.replaceExpression(expression, replacementText, commentTracker); }