luaur_bytecode/methods/
bytecode_graph_parser_add_successor.rs1use crate::enums::bc_block_edge_kind::BcBlockEdgeKind;
2use crate::records::bc_block::BcBlock;
3use crate::records::bc_block_edge::BcBlockEdge;
4use crate::records::bc_op::BcOp;
5use crate::records::bytecode_graph_parser::BytecodeGraphParser;
6
7impl<'a> BytecodeGraphParser<'a> {
8 pub fn add_successor(&mut self, from_op: BcOp, to_op: BcOp, kind: BcBlockEdgeKind) {
9 let from: &mut BcBlock = self.func.block_op(from_op);
10 from.successors.push_back(BcBlockEdge {
11 kind,
12 target: to_op,
13 });
14
15 let to: &mut BcBlock = self.func.block_op(to_op);
16 to.predecessors.push_back(BcBlockEdge {
17 kind,
18 target: from_op,
19 });
20 }
21}