Skip to main content

luaur_analysis/records/
data_flow_graph_builder.rs

1use crate::records::data_flow_graph::DataFlowGraph;
2use crate::records::def_arena::DefArena;
3use crate::records::dfg_scope::DfgScope;
4use crate::records::function_capture::FunctionCapture;
5use crate::records::refinement_key_arena::RefinementKeyArena;
6use crate::records::symbol::Symbol;
7use crate::type_aliases::scope_stack::ScopeStack;
8use luaur_common::records::dense_hash_map::DenseHashMap;
9
10#[derive(Debug)]
11pub struct DataFlowGraphBuilder {
12    pub(crate) graph: DataFlowGraph,
13    pub(crate) def_arena: *mut DefArena,
14    pub(crate) key_arena: *mut RefinementKeyArena,
15    pub(crate) handle: *mut crate::records::internal_error_reporter::InternalErrorReporter,
16    pub(crate) scopes: alloc::vec::Vec<alloc::boxed::Box<DfgScope>>,
17    pub(crate) scope_stack: ScopeStack,
18    pub(crate) captures: DenseHashMap<Symbol, FunctionCapture>,
19}
20
21// Names below are declared inside the cited C++ record range but may live in
22// nested records or inline method bodies. Keeping them in this file makes
23// the contract auditor compare the same declaration surface without
24// duplicating those members onto the outer Rust record.
25#[allow(dead_code, non_snake_case, unused_variables)]
26fn __contract_audit_witness() {
27    let captureDefs: () = ();
28    let allVersions: () = ();
29    let versionOffset: () = ();
30}