luaur_analysis/methods/
find_node_visit_ast_query_alt_c.rs1use crate::records::find_node::FindNode;
2use luaur_ast::records::ast_node::AstNode;
3use luaur_ast::records::ast_stat::AstStat;
4use luaur_ast::records::ast_stat_block::AstStatBlock;
5use luaur_ast::visit::ast_stat_visit;
6
7impl FindNode {
8 pub fn visit_ast_stat_block(&mut self, block: *mut AstStatBlock) -> bool {
9 self.visit_ast_node(block as *mut AstNode);
10
11 let block_ref = unsafe { &*block };
12 let body = block_ref.body;
13
14 for i in 0..body.size {
15 let stat = unsafe { *body.data.add(i) };
16 let stat_ref = unsafe { &*stat };
17
18 if stat_ref.base.location.end < self.pos {
19 continue;
20 }
21 if stat_ref.base.location.begin > self.pos {
22 break;
23 }
24
25 unsafe {
26 ast_stat_visit(stat, self);
27 }
28 }
29
30 false
31 }
32}