boolean (@NotNull PsiVariable variable) { if (variable instanceof PsiField) { if (variable.hasModifierProperty(PsiModifier.PRIVATE)) { final PsiClass aClass = PsiUtil.getTopLevelClass(variable); return variableIsAssigned(variable, aClass); } return DeclarationSearchUtils.isTooExpensiveToSearch(variable, false) || ReferencesSearch.search(variable).anyMatch(reference -> { final PsiExpression expression = ObjectUtils.tryCast(reference.getElement(), PsiExpression.class); return expression != null && PsiUtil.isAccessedForWriting(expression); }); } final PsiElement context = PsiTreeUtil.getParentOfType(variable, PsiCodeBlock.class, PsiMethod.class, PsiLambdaExpression.class, PsiCatchSection.class, PsiForStatement.class, PsiForeachStatement.class); return variableIsAssigned(variable, context); }