Skip to main content

luaur_analysis/methods/
control_flow_graph_new_block.rs

1//! Source: `Analysis/src/ControlFlowGraph.cpp:120-124` (hand-ported)
2//! C++ `BlockId ControlFlowGraph::newBlock(BlockKind kind, std::string debugName)`.
3use crate::enums::block_kind::BlockKind;
4use crate::records::control_flow_graph::ControlFlowGraph;
5use crate::type_aliases::block_id::BlockId;
6use alloc::string::String;
7
8impl ControlFlowGraph {
9    pub fn new_block(&mut self, kind: BlockKind, debug_name: String) -> BlockId {
10        // C++:
11        //   Block* b = allocator->newBlock(kind, debugName);
12        //   return blocks.emplace_back(b);
13        let b: BlockId = unsafe { (*self.allocator).new_block(kind, debug_name) };
14        self.blocks.push(b);
15        b
16    }
17}