Skip to main content

luaur_compiler/records/
undefined_local_visitor.rs

1//! Generated skeleton item.
2//! Node: `cxx:Record:Luau.Compiler:Compiler/src/Compiler.cpp:4789:undefined_local_visitor`
3//! Source: `Compiler/src/Compiler.cpp`
4//! Graph edges:
5//! - declared_by: source_file Compiler/src/Compiler.cpp
6//! - source_includes:
7//!   - includes -> source_file Compiler/include/Luau/Compiler.h
8//!   - includes -> source_file Ast/include/Luau/Ast.h
9//!   - includes -> source_file Bytecode/include/Luau/BytecodeBuilder.h
10//!   - includes -> source_file Common/include/Luau/Common.h
11//!   - includes -> source_file Ast/include/Luau/Parser.h
12//!   - includes -> source_file Common/include/Luau/InsertionOrderedMap.h
13//!   - includes -> source_file Common/include/Luau/StringUtils.h
14//!   - includes -> source_file Common/include/Luau/TimeTrace.h
15//!   - includes -> source_file CodeGen/src/IrTranslateBuiltins.h
16//!   - includes -> source_file Compiler/src/ConstantFolding.h
17//!   - includes -> source_file Compiler/src/CostModel.h
18//!   - includes -> source_file Compiler/src/TableShape.h
19//!   - includes -> source_file Analysis/include/Luau/AutocompleteTypes.h
20//!   - includes -> source_file Analysis/include/Luau/AstUtils.h
21//!   - includes -> source_file Compiler/src/ValueTracking.h
22//! - incoming:
23//!   - declares <- source_file Compiler/src/Compiler.cpp
24//!   - type_ref <- method Compiler::validateContinueUntil (Compiler/src/Compiler.cpp)
25//!   - type_ref <- method Compiler::UndefinedLocalVisitor::UndefinedLocalVisitor (Compiler/src/Compiler.cpp)
26//!   - type_ref <- method Compiler::UndefinedLocalVisitor::check (Compiler/src/Compiler.cpp)
27//!   - type_ref <- method Compiler::UndefinedLocalVisitor::visit (Compiler/src/Compiler.cpp)
28//!   - type_ref <- method Compiler::UndefinedLocalVisitor::visit (Compiler/src/Compiler.cpp)
29//! - outgoing:
30//!   - type_ref -> method Compiler::UndefinedLocalVisitor::UndefinedLocalVisitor (Compiler/src/Compiler.cpp)
31//!   - type_ref -> record AstVisitor (Ast/include/Luau/Ast.h)
32//!   - type_ref -> record Compiler (Compiler/src/Compiler.cpp)
33//!   - type_ref -> record AstLocal (Ast/include/Luau/Ast.h)
34//!   - type_ref -> record DenseHashSet (Common/include/Luau/DenseHash.h)
35//!   - translates_to -> rust_item UndefinedLocalVisitor
36
37use crate::records::compiler::Compiler;
38use luaur_ast::records::ast_local::AstLocal;
39use luaur_ast::records::ast_visitor::AstVisitor;
40use luaur_common::records::dense_hash_set::DenseHashSet;
41
42#[derive(Debug, Clone)]
43pub struct UndefinedLocalVisitor {
44    pub(crate) self_: *mut Compiler,
45    pub(crate) undef: *mut AstLocal,
46    pub(crate) locals: DenseHashSet<*mut AstLocal>,
47}
48
49impl AstVisitor for UndefinedLocalVisitor {
50    fn visit_expr_local(&mut self, node: *mut core::ffi::c_void) -> bool {
51        self.visit_ast_expr_local(node.cast())
52    }
53
54    fn visit_expr_function(&mut self, node: *mut core::ffi::c_void) -> bool {
55        self.visit_ast_expr_function(node.cast())
56    }
57}