void (@NotNull PsiAssignmentExpression assignment) { if (!assignment.getOperationTokenType().equals(JavaTokenType.EQ)) return; if (assignment.getParent() instanceof PsiExpressionList || !ExpressionUtils.isVoidContext(assignment)) return; PsiField field = getAssignedField(assignment); if (field == null || field.hasInitializer()) return; if (field instanceof SyntheticElement) return; PsiClass psiClass = field.getContainingClass(); if (psiClass == null || psiClass.isInterface()) return; if (psiClass.getContainingFile() != holder.getFile()) return; PsiModifierListOwner ctrOrInitializer = enclosingMethodOrClassInitializer(assignment, field); if (ctrOrInitializer == null) return; if (ctrOrInitializer.hasModifierProperty(PsiModifier.STATIC) != field.hasModifierProperty(PsiModifier.STATIC)) return; if (!isValidAsFieldInitializer(assignment.getRExpression(), ctrOrInitializer, field)) return; if (!isInitializedWithSameExpression(field, assignment, new ArrayList<>())) return; boolean shouldWarn = shouldWarn(ctrOrInitializer, field, assignment); if (!shouldWarn && !isOnTheFly) return; TextRange range; if (shouldWarn && !InspectionProjectProfileManager.isInformationLevel(getShortName(), assignment)) { PsiExpression lValue = assignment.getLExpression(); range = new TextRange(0, lValue.getTextLength()).shiftRight(lValue.getStartOffsetInParent()); } else { range = new TextRange(0, assignment.getTextLength()); } holder.registerProblem(assignment, JavaBundle.message("intention.move.field.assignment.to.declaration"), shouldWarn ? ProblemHighlightType.GENERIC_ERROR_OR_WARNING : ProblemHighlightType.INFORMATION, range, new MoveFieldAssignmentToInitializerFix()); }