PsiElementVisitor (@NotNull final ProblemsHolder holder, boolean isOnTheFly) { return new JavaElementVisitor() { @Override public void visitField(@NotNull PsiField field) { super.visitField(field); if (field.hasModifierProperty(PsiModifier.FINAL)) { return; } final PsiClass containingClass = field.getContainingClass(); if (containingClass != null) { if (!JCiPUtil.isImmutable(containingClass)) { return; } holder.registerProblem(field.getNameIdentifier(), JavaAnalysisBundle.message("non.final.field.code.ref.code.in.immutable.class.loc")); } } }; }