Integer () { int minOffset = flow.getSize(); int maxExitPoints = 0; nextOffset: for (int i = sourceOffset; i < exitPoints.length; i++) { IntSet exitPointSet = exitPoints[i]; final int size = exitPointSet == null ? 0 : exitPointSet.size(); if (size > maxExitPoints) { // this offset should be reachable from all other references for (PsiElement element : references) { final PsiElement statement = PsiUtil.getEnclosingStatement(element); if (statement == null) continue; final int endOffset = flow.getEndOffset(statement); if (endOffset == -1) continue; if (i != endOffset && !isInstructionReachable(flow, i, endOffset)) continue nextOffset; } minOffset = i; maxExitPoints = size; } } return minOffset; }