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}