diff --git a/src/protocol/tests/utils.rs b/src/protocol/tests/utils.rs index 802e5625a6ccb1640a5a36cea919568fada4d3d7..c39dedfc5eeac57e4908f14b69524ce22b87bbd3 100644 --- a/src/protocol/tests/utils.rs +++ b/src/protocol/tests/utils.rs @@ -748,8 +748,11 @@ impl<'a> VariableTester<'a> { pub(crate) fn assert_concrete_type(self, expected: &str) -> Self { // Lookup concrete type in type table - let mono_data = get_procedure_monomorph(&self.ctx.heap, &self.ctx.types, self.definition_id); - let concrete_type = &mono_data.expr_data[self.var_expr.unique_id_in_definition as usize].expr_type; + let mono_proc = get_procedure_monomorph(&self.ctx.heap, &self.ctx.types, self.definition_id); + let mono_index = mono_proc.monomorph_index; + let mono_data = &self.ctx.heap[self.definition_id].as_procedure().monomorphs[mono_index as usize]; + let expr_info = &mono_data.expr_info[self.var_expr.type_index as usize]; + let concrete_type = &self.ctx.types.get_monomorph(expr_info.type_id).concrete_type; // Serialize and check let serialized = concrete_type.display_name(self.ctx.heap); @@ -782,9 +785,11 @@ impl<'a> ExpressionTester<'a> { pub(crate) fn assert_concrete_type(self, expected: &str) -> Self { // Lookup concrete type - let mono_data = get_procedure_monomorph(&self.ctx.heap, &self.ctx.types, self.definition_id); - let expr_index = self.expr.get_unique_id_in_definition(); - let concrete_type = &mono_data.expr_data[expr_index as usize].expr_type; + let mono_proc = get_procedure_monomorph(&self.ctx.heap, &self.ctx.types, self.definition_id); + let mono_index = mono_proc.monomorph_index; + let mono_data = &self.ctx.heap[self.definition_id].as_procedure().monomorphs[mono_index as usize]; + let expr_info = &mono_data.expr_info[self.var_expr.type_index as usize]; + let concrete_type = &self.ctx.types.get_monomorph(expr_info.type_id).concrete_type; // Serialize and check type let serialized = concrete_type.display_name(self.ctx.heap);