void (@NotNull PsiField field) { super.visitField(field); if (!field.hasInitializer() || field.hasModifierProperty(PsiModifier.FINAL)) { return; } final PsiExpression initializer = field.getInitializer(); if (initializer == null) { return; } final PsiType type = field.getType(); if (PsiTypes.booleanType().equals(type)) { if (onlyWarnOnNull || !ExpressionUtils.isLiteral(PsiUtil.skipParenthesizedExprDown(initializer), false)) { return; } } else if (type instanceof PsiPrimitiveType) { if (onlyWarnOnNull || !ExpressionUtils.isZero(initializer)) { return; } } else if (!PsiTypes.nullType().equals(initializer.getType())) { return; } if (initializer instanceof PsiReferenceExpression || !PsiTreeUtil.findChildrenOfType(initializer, PsiReferenceExpression.class).isEmpty()) { return; } if (isAssignmentInInitializerOverwritten(field)) { return; } registerError(initializer); }