luaur_analysis/methods/
cfg_builder_lower_control_flow_graph_alt_d.rs1use crate::records::assign::Assign;
2use crate::records::cfg_builder::CfgBuilder;
3use luaur_ast::records::ast_stat_assign::AstStatAssign;
4use luaur_common::macros::luau_assert::LUAU_ASSERT;
5
6impl CfgBuilder {
7 pub fn lower_ast_stat_assign(&mut self, assn: *mut AstStatAssign) {
8 unsafe {
9 for i in 0..(*assn).values.size {
10 let expr = *(*assn).values.data.add(i as usize);
11 self.lower_expr_ast_expr(expr);
12 }
13
14 for i in 0..(*assn).vars.size {
15 let target = *(*assn).vars.data.add(i as usize);
16
17 if let Some(sym) =
24 crate::functions::extract_l_value_symbol::extract_l_value_symbol(&*target)
25 {
26 let def = self.new_definition(sym.clone());
27 let current_block = self.current_block;
28 self.emit::<Assign, _>(current_block, (def, assn));
29 (*current_block).set_reaching_definition(sym, def);
30 } else {
31 LUAU_ASSERT!(false);
32 }
33 }
34 }
35 }
36}