summaryrefslogtreecommitdiff
path: root/crates/parser/src
diff options
context:
space:
mode:
authorHenry Gressmann <mail@henrygressmann.de>2025-05-06 20:14:50 +0200
committerHenry Gressmann <mail@henrygressmann.de>2025-05-06 20:14:50 +0200
commit0f3581ef8fdb55ad21fdfd132eaefadaec242f85 (patch)
tree2d9140bcadd0ef0c24aed3b397eb03cf5950abc6 /crates/parser/src
parente1b76386b7e323054d5e8844366ebad86bba693e (diff)
chore: update deps, update nightly
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'crates/parser/src')
-rw-r--r--crates/parser/src/lib.rs2
-rw-r--r--crates/parser/src/module.rs2
-rw-r--r--crates/parser/src/visit.rs15
3 files changed, 18 insertions, 1 deletions
diff --git a/crates/parser/src/lib.rs b/crates/parser/src/lib.rs
index aa33995..f0196b6 100644
--- a/crates/parser/src/lib.rs
+++ b/crates/parser/src/lib.rs
@@ -83,6 +83,8 @@ impl Parser {
cm_nested_names: false,
cm_values: false,
cm_error_context: false,
+ cm_fixed_size_list: false,
+ cm_gc: false,
};
Validator::new_with_features(features.into())
}
diff --git a/crates/parser/src/module.rs b/crates/parser/src/module.rs
index 0e17ad9..3a3becd 100644
--- a/crates/parser/src/module.rs
+++ b/crates/parser/src/module.rs
@@ -125,7 +125,7 @@ impl ModuleReader {
self.code_type_addrs = reader.into_iter().map(|f| Ok(f?)).collect::<Result<Vec<_>>>()?;
}
CodeSectionStart { count, range, .. } => {
- debug!("Found code section ({} functions)", count);
+ debug!("Found code section ({count} functions)");
if !self.code.is_empty() {
return Err(ParseError::DuplicateSection("Code section".into()));
}
diff --git a/crates/parser/src/visit.rs b/crates/parser/src/visit.rs
index 10005c0..1635d2d 100644
--- a/crates/parser/src/visit.rs
+++ b/crates/parser/src/visit.rs
@@ -453,6 +453,21 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
self.instructions.push(Instruction::RefIsNull);
}
+ fn visit_typed_select_multi(&mut self, _tys: Vec<wasmparser::ValType>) -> Self::Output {
+ self.errors.push(crate::ParseError::UnsupportedOperator(
+ "Typed select with multiple types is not supported".to_string(),
+ ));
+
+ // self.instructions.extend(tys.into_iter().map(|ty| match ty {
+ // wasmparser::ValType::I32 => Instruction::Select32,
+ // wasmparser::ValType::F32 => Instruction::Select32,
+ // wasmparser::ValType::I64 => Instruction::Select64,
+ // wasmparser::ValType::F64 => Instruction::Select64,
+ // wasmparser::ValType::V128 => Instruction::Select128,
+ // wasmparser::ValType::Ref(_) => Instruction::SelectRef,
+ // }));
+ }
+
fn visit_typed_select(&mut self, ty: wasmparser::ValType) -> Self::Output {
self.instructions.push(match ty {
wasmparser::ValType::I32 => Instruction::Select32,