luaur_bytecode/methods/
bc_inst_helper_set_imm_input.rs1use crate::enums::bc_imm_kind::BcImmKind;
2use crate::enums::bc_op_kind::BcOpKind;
3use crate::records::bc_inst_helper::BcInstHelper;
4use luaur_common::macros::luau_assert::LUAU_ASSERT;
5
6impl BcInstHelper<'_> {
7 pub fn set_imm_input(&mut self, input_idx: u32, value: i32) {
8 if self.get_bc_op(input_idx).kind == BcOpKind::None {
9 let imm_op = self.graph.add_imm(BcImmKind::Int);
10 self.set_bc_op(input_idx, imm_op);
11 }
12
13 let op = self.get_bc_op(input_idx);
14 let imm = self.graph.imm_op(op);
15
16 LUAU_ASSERT!(imm.kind == BcImmKind::Int);
17 unsafe {
18 imm.value.valueInt = value;
19 }
20 }
21}