diff --git a/crates/artifacts/solc/src/ast/mod.rs b/crates/artifacts/solc/src/ast/mod.rs index 2765b5132..76b9fd38e 100644 --- a/crates/artifacts/solc/src/ast/mod.rs +++ b/crates/artifacts/solc/src/ast/mod.rs @@ -1000,7 +1000,7 @@ ast_node!( name_location: Option, #[serde(default, deserialize_with = "serde_helpers::default_for_null")] base_modifiers: Vec, - body: Block, + body: Option, documentation: Option, overrides: Option, parameters: ParameterList, diff --git a/crates/artifacts/solc/src/ast/visitor.rs b/crates/artifacts/solc/src/ast/visitor.rs index b11684930..d8064ff0b 100644 --- a/crates/artifacts/solc/src/ast/visitor.rs +++ b/crates/artifacts/solc/src/ast/visitor.rs @@ -281,7 +281,9 @@ impl_walk!(StructDefinition, visit_struct_definition, |struct_, visitor| { }); impl_walk!(ModifierDefinition, visit_modifier_definition, |modifier, visitor| { - modifier.body.walk(visitor); + if let Some(body) = &modifier.body { + body.walk(visitor); + } if let Some(override_) = &modifier.overrides { override_.walk(visitor); }