From 2e01b5c30728289e8868f5813eb16147d826b171 Mon Sep 17 00:00:00 2001 From: Yi LIU Date: Thu, 12 Feb 2026 20:01:17 +0800 Subject: [PATCH 1/2] Fix FixedSizeList type silently losing size and Map todo panic FixedSizeList was being converted to a regular List, discarding the size parameter. Now correctly maps to DefinedType::FixedSizeList preserving both the element type and size. Also replaced the todo!() panic for ComponentDefinedType::Map with a proper error, since encountering Map types at runtime should not crash. --- crates/wac-types/src/package.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/wac-types/src/package.rs b/crates/wac-types/src/package.rs index af6a923..7ce9252 100644 --- a/crates/wac-types/src/package.rs +++ b/crates/wac-types/src/package.rs @@ -754,12 +754,12 @@ impl<'a> TypeConverter<'a> { let option = ty.map(|ty| self.component_val_type(ty)).transpose()?; ValueType::Defined(self.types.add_defined_type(DefinedType::Future(option))) } - wasm::ComponentDefinedType::FixedSizeList(ty, _) => { + wasm::ComponentDefinedType::FixedSizeList(ty, size) => { let ty = self.component_val_type(*ty)?; - ValueType::Defined(self.types.add_defined_type(DefinedType::List(ty))) + ValueType::Defined(self.types.add_defined_type(DefinedType::FixedSizeList(ty, *size))) } wasmparser::component_types::ComponentDefinedType::Map(_, _) => { - todo!("wasmparser::component_types::ComponentDefinedType::Map"); + bail!("ComponentDefinedType::Map is not yet supported"); } }; From 0f44dd50e24c8e6e77ff8da02aedacdb9d811708 Mon Sep 17 00:00:00 2001 From: Yi LIU Date: Thu, 12 Feb 2026 21:30:28 +0800 Subject: [PATCH 2/2] Run cargo fmt --- crates/wac-types/src/package.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/wac-types/src/package.rs b/crates/wac-types/src/package.rs index 7ce9252..2cc84b5 100644 --- a/crates/wac-types/src/package.rs +++ b/crates/wac-types/src/package.rs @@ -756,7 +756,10 @@ impl<'a> TypeConverter<'a> { } wasm::ComponentDefinedType::FixedSizeList(ty, size) => { let ty = self.component_val_type(*ty)?; - ValueType::Defined(self.types.add_defined_type(DefinedType::FixedSizeList(ty, *size))) + ValueType::Defined( + self.types + .add_defined_type(DefinedType::FixedSizeList(ty, *size)), + ) } wasmparser::component_types::ComponentDefinedType::Map(_, _) => { bail!("ComponentDefinedType::Map is not yet supported");