Skip to content

Commit b04423c

Browse files
authored
fix: allow empty modifier body in AST (#169)
Closes foundry-rs/foundry#7554 solc since 0.6.7 allows empty `body` on modifiers this was incorrect in OpenZeppelin AST impl which served as a reference for our implementation OpenZeppelin/solidity-ast#43
1 parent 67a46cf commit b04423c

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

crates/artifacts/solc/src/ast/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1000,7 +1000,7 @@ ast_node!(
10001000
name_location: Option<SourceLocation>,
10011001
#[serde(default, deserialize_with = "serde_helpers::default_for_null")]
10021002
base_modifiers: Vec<usize>,
1003-
body: Block,
1003+
body: Option<Block>,
10041004
documentation: Option<StructuredDocumentation>,
10051005
overrides: Option<OverrideSpecifier>,
10061006
parameters: ParameterList,

crates/artifacts/solc/src/ast/visitor.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,9 @@ impl_walk!(StructDefinition, visit_struct_definition, |struct_, visitor| {
281281
});
282282

283283
impl_walk!(ModifierDefinition, visit_modifier_definition, |modifier, visitor| {
284-
modifier.body.walk(visitor);
284+
if let Some(body) = &modifier.body {
285+
body.walk(visitor);
286+
}
285287
if let Some(override_) = &modifier.overrides {
286288
override_.walk(visitor);
287289
}

0 commit comments

Comments
 (0)