void (@NotNull List<? extends PsiElement> targets) { PsiElement parent = myTarget.getParent(); if (!(parent instanceof GrReturnStatement) && !(parent instanceof GrThrowStatement)) return; final GrControlFlowOwner flowOwner = ControlFlowUtils.findControlFlowOwner(parent); ControlFlowUtils.visitAllExitPoints(flowOwner, new ControlFlowUtils.ExitPointVisitor() { @Override public boolean visitExitPoint(Instruction instruction, @Nullable GrExpression returnValue) { final PsiElement returnElement = instruction.getElement(); if (returnElement != null && isCorrectReturn(returnElement)) { final TextRange range = returnElement.getTextRange(); myReadUsages.add(range); } return true; } }); }