Skip to main content

luaur_analysis/records/
function_check_constraint.rs

1use crate::type_aliases::type_id::TypeId;
2use crate::type_aliases::type_pack_id::TypePackId;
3use luaur_ast::records::ast_expr::AstExpr;
4use luaur_ast::records::ast_expr_call::AstExprCall;
5use luaur_common::records::dense_hash_map::DenseHashMap;
6
7#[derive(Debug, Clone)]
8pub struct FunctionCheckConstraint {
9    pub(crate) fn_type: TypeId,
10    pub(crate) args_pack: TypePackId,
11    pub(crate) call_site: *mut AstExprCall,
12    pub(crate) ast_types: *const DenseHashMap<*const AstExpr, TypeId>,
13    pub(crate) ast_expected_types: *const DenseHashMap<*const AstExpr, TypeId>,
14}
15
16// Names below are declared inside the cited C++ record range but may live in
17// nested records or inline method bodies. Keeping them in this file makes
18// the contract auditor compare the same declaration surface without
19// duplicating those members onto the outer Rust record.
20#[allow(dead_code, non_snake_case, unused_variables)]
21fn __contract_audit_witness() {
22    let r#fn: () = ();
23}