void (@NotNull PsiExpression expression, @NotNull PsiType type, @Nullable PsiExpression lExpr, @Nullable HighlightInfo.Builder highlightInfo) { if (highlightInfo == null || !(expression instanceof PsiReferenceExpression)) return; PsiElement element = ((PsiReferenceExpression)expression).resolve(); if (!(element instanceof PsiVariable)) return; registerChangeVariableTypeFixes((PsiVariable)element, type, lExpr, highlightInfo); PsiExpression stripped = PsiUtil.skipParenthesizedExprDown(lExpr); if (stripped instanceof PsiMethodCallExpression && lExpr.getParent() instanceof PsiAssignmentExpression) { PsiElement parent = lExpr.getParent(); if (parent.getParent() instanceof PsiStatement) { PsiMethod method = ((PsiMethodCallExpression)stripped).resolveMethod(); if (method != null && PsiTypes.voidType().equals(method.getReturnType())) { highlightInfo.registerFix(new ReplaceAssignmentFromVoidWithStatementIntentionAction(parent, stripped), null, null, null, null); } } } }