Collection<VariableInfo> (@NotNull ControlFlow flow, int startOffset, int endOffset) { while (startOffset < endOffset) { InitializedTwiceClientVisitor visitor = new InitializedTwiceClientVisitor(flow, startOffset); depthFirstSearch(flow, visitor, startOffset, endOffset); Collection<VariableInfo> result = visitor.getResult(); if(!result.isEmpty()) { return result; } startOffset = findUnprocessed(startOffset, endOffset, visitor); } return Collections.emptyList(); }