Skip to main content

luaur_ast/records/
ast_stat_declare_function.rs

1//! Faithful port of Luau `AstStatDeclareFunction : AstStat`
2//! (`Ast/include/Luau/Ast.h`). Hand-ported (false-blocked via the bare-name
3//! `AstAttr::Type` resolution). The two constructors and the
4//! `visit`/`isCheckedFunction`/`has_attribute`/`get_attribute` methods are
5//! separate items.
6
7use crate::records::ast_array::AstArray;
8use crate::records::ast_attr::AstAttr;
9use crate::records::ast_generic_type::AstGenericType;
10use crate::records::ast_generic_type_pack::AstGenericTypePack;
11use crate::records::ast_name::AstName;
12use crate::records::ast_stat::AstStat;
13use crate::records::ast_type_list::AstTypeList;
14use crate::records::ast_type_pack::AstTypePack;
15use crate::records::location::Location;
16use crate::type_aliases::ast_argument_name::AstArgumentName;
17
18#[repr(C)]
19#[derive(Debug, Clone)]
20pub struct AstStatDeclareFunction {
21    pub base: AstStat,
22    pub attributes: AstArray<*mut AstAttr>,
23    pub name: AstName,
24    pub name_location: Location,
25    pub generics: AstArray<*mut AstGenericType>,
26    pub generic_packs: AstArray<*mut AstGenericTypePack>,
27    pub params: AstTypeList,
28    pub param_names: AstArray<AstArgumentName>,
29    pub vararg: bool,
30    pub vararg_location: Location,
31    pub ret_types: *mut AstTypePack,
32}
33
34impl crate::rtti::AstNodeClass for AstStatDeclareFunction {
35    const CLASS_INDEX: i32 = crate::rtti::ast_rtti_index("AstStatDeclareFunction");
36}