boolean (@Nullable PsiMethodCallExpression collectCall) { if (collectCall == null) return false; final PsiExpression effectiveReference = findEffectiveReference(collectCall); QueryUpdateInfo info = new QueryUpdateInfo(); new Visitor(null, defaultQueryNames, defaultUpdateNames, info).process(effectiveReference); if (!info.updated) return true; PsiElement parent = effectiveReference.getParent(); Set<PsiReferenceExpression> ignored = new HashSet<>(); if (parent instanceof PsiAssignmentExpression assignmentExpression) { if(assignmentExpression.getLExpression() instanceof PsiReferenceExpression referenceExpression){ ignored.add(referenceExpression); parent = referenceExpression.resolve(); } } if (!(parent instanceof PsiLocalVariable || parent instanceof PsiField)) return false; if (parent instanceof PsiField) { info = getCollectionQueryUpdateInfo((PsiField)parent, defaultUpdateNames, defaultQueryNames, Collections.emptySet()); } else { info = getCollectionQueryUpdateInfo((PsiLocalVariable)parent, defaultUpdateNames, defaultQueryNames, Collections.emptySet(), ignored); } return info != null && !info.updated; }