neo_solidity/solidity/analyse/modifiers/rewrite/
substitutions.rs1fn build_parameter_substitutions(
2 params: &[ParameterIR],
3 args: &[Expression],
4) -> Result<std::collections::HashMap<String, Expression>, SolidityError> {
5 if params.len() != args.len() {
6 return Err(SolidityError::Analysis(format!(
7 "modifier/constructor argument mismatch: expected {}, got {}",
8 params.len(),
9 args.len()
10 )));
11 }
12
13 let mut map = std::collections::HashMap::new();
14 for (param, arg) in params.iter().zip(args.iter()) {
15 let Some(name) = param.name.as_ref() else {
16 return Err(SolidityError::Analysis(
17 "modifier/constructor parameter is missing an identifier".to_string(),
18 ));
19 };
20 map.insert(name.clone(), arg.clone());
21 }
22 Ok(map)
23}