DfaValue (DfaValueFactory factory, PsiVariable variable) { if (!variable.hasModifierProperty(PsiModifier.FINAL) || ignoreInitializer(variable)) return null; Object value = variable.computeConstantValue(); PsiType type = variable.getType(); if (value == null) { Boolean boo = computeJavaLangBooleanFieldReference(variable); if (boo != null) { DfaValue unboxed = factory.fromDfType(DfTypes.booleanValue(boo)); return factory.getWrapperFactory().createWrapper(DfTypes.typedObject(type, Nullability.NOT_NULL), SpecialField.UNBOX, unboxed); } if (DfaUtil.isEmptyCollectionConstantField(variable)) { return factory.fromDfType(DfTypes.constant(variable, type)); } PsiExpression initializer = PsiFieldImpl.getDetachedInitializer(variable); initializer = PsiUtil.skipParenthesizedExprDown(initializer); if (initializer instanceof PsiLiteralExpression && initializer.textMatches(PsiKeyword.NULL)) { return factory.fromDfType(DfTypes.NULL); } if (variable instanceof PsiField && variable.hasModifierProperty(PsiModifier.STATIC) && ExpressionUtils.isNewObject(initializer)) { return factory.fromDfType(DfTypes.constant(variable, type)); } return null; } return factory.fromDfType(DfTypes.constant(value, type)); }