void (@NotNull GrControlFlowOwner owner, @NotNull ProblemsHolder problemsHolder) { GroovyControlFlow flow = ControlFlowUtils.getGroovyControlFlow(owner); List<Pair<ReadWriteVariableInstruction, VariableDescriptor>> reads = ControlFlowBuilderUtil.getReadsWithoutPriorWrites(flow, true); for (Pair<ReadWriteVariableInstruction, VariableDescriptor> read : reads) { PsiElement element = read.getFirst().getElement(); if (element instanceof GroovyPsiElement && !(element instanceof GrClosableBlock)) { String name = flow.getVarIndices()[read.getFirst().getDescriptor()].getName(); GroovyPsiElement property = ResolveUtil.resolveProperty((GroovyPsiElement)element, name); if (property != null && !(property instanceof PsiParameter) && !(property instanceof PsiField) && PsiTreeUtil.isAncestor(owner, property, false) && !(myIgnoreBooleanExpressions && isBooleanCheck(element)) ) { problemsHolder.registerProblem(element, GroovyBundle.message("unassigned.access.tooltip", name)); } } } }