boolean (@NotNull PsiReferenceExpression referenceExpression, @NotNull PsiVariable variable, int stamp, @NotNull Set<MethodSignature> checkedMethods) { final PsiExpression qualifierExpression = referenceExpression.getQualifierExpression(); if (expressionAssignsVariable(qualifierExpression, variable, stamp, checkedMethods)) { return true; } if (variable.equals(referenceExpression.resolve())) { final PsiElement parent = ParenthesesUtils.getParentSkipParentheses(referenceExpression); if (parent instanceof PsiAssignmentExpression assignmentExpression) { final PsiExpression rhs = assignmentExpression.getRExpression(); if (rhs != null && rhs.equals(referenceExpression)) { checkReferenceExpression(referenceExpression, variable, qualifierExpression); } } else if (!(parent instanceof PsiExpression) || !ComparisonUtils.isNullComparison((PsiExpression)parent)) { checkReferenceExpression(referenceExpression, variable, qualifierExpression); } } return false; }