From ba1cf56464f8e5c3c7bcc2dc75f10aad2cd56e6b Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 2 May 2026 21:14:02 +0200 Subject: chore: add more tests, fix issues with import types, cleanup doom example Signed-off-by: Henry --- crates/parser/src/module.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'crates/parser/src/module.rs') diff --git a/crates/parser/src/module.rs b/crates/parser/src/module.rs index 02a3297..5f5e5e2 100644 --- a/crates/parser/src/module.rs +++ b/crates/parser/src/module.rs @@ -377,6 +377,15 @@ impl<'a> ModuleReader<'a> { }; let mut funcs = Vec::with_capacity(self.code.len()); + let mut func_type_idxs = self + .imports + .iter() + .filter_map(|import| match import.kind { + ImportKind::Function(type_idx) => Some(type_idx), + _ => None, + }) + .collect::>(); + func_type_idxs.extend(self.code_type_addrs.iter().copied()); for (code, ty_idx) in self.code.into_iter().zip(self.code_type_addrs) { let ty = self.func_types.get(ty_idx as usize).expect("No func type for func, this is a bug").clone(); @@ -402,6 +411,7 @@ impl<'a> ModuleReader<'a> { Ok(ModuleInner { funcs: funcs.into(), func_types: self.func_types.into(), + func_type_idxs: func_type_idxs.into(), globals: self.globals.into(), table_types: self.table_types.into(), imports: self.imports.into(), -- cgit v1.3.1