void (List<@Nullable Statement> statements, @NotNull List<List<StatEdge>> edges) { for (int i = 0; i < statements.size(); i++) { if (statements.get(i) == null) { BasicBlockStatement basicBlock = new BasicBlockStatement(new BasicBlock( DecompilerContext.getCounterContainer().getCounterAndIncrement(CounterContainer.STATEMENT_COUNTER))); StatEdge sampleEdge = edges.get(i).get(0); basicBlock.addSuccessor(new StatEdge(sampleEdge.getType(), basicBlock, sampleEdge.getDestination(), sampleEdge.closure)); for (StatEdge edge : edges.get(i)) { edge.getSource().changeEdgeType(EdgeDirection.FORWARD, edge, EdgeType.REGULAR); edge.closure.getLabelEdges().remove(edge); edge.getDestination().removePredecessor(edge); edge.getSource().changeEdgeNode(EdgeDirection.FORWARD, edge, basicBlock); basicBlock.addPredecessor(edge); } statements.set(i, basicBlock); stats.addWithKey(basicBlock, basicBlock.id); basicBlock.setParent(this); } } }