@@ -93,9 +93,19 @@ impl PreprocessorDependencies {
9393enum BytecodeDependencyKind {
9494 /// `type(Contract).creationCode`
9595 CreationCode ,
96- /// `new Contract`. Holds the name of the contract, args length and call args offset,
97- /// `msg.value` (if any) and salt (if any).
98- New ( String , usize , usize , Option < String > , Option < String > ) ,
96+ /// `new Contract`.
97+ New {
98+ /// Contract name.
99+ name : String ,
100+ /// Constructor args length.
101+ args_length : usize ,
102+ /// Constructor call args offset.
103+ call_args_offset : usize ,
104+ /// `msg.value` (if any) used when creating contract.
105+ value : Option < String > ,
106+ /// `salt` (if any) used when creating contract.
107+ salt : Option < String > ,
108+ } ,
99109}
100110
101111/// Represents a single bytecode dependency.
@@ -191,13 +201,18 @@ impl<'hir> Visit<'hir> for BytecodeDependencyCollector<'hir> {
191201
192202 let args_len = expr. span . hi ( ) - ty_new. span . hi ( ) ;
193203 self . collect_dependency ( BytecodeDependency {
194- kind : BytecodeDependencyKind :: New (
195- name. to_string ( ) ,
196- args_len. to_usize ( ) ,
204+ kind : BytecodeDependencyKind :: New {
205+ name : name . to_string ( ) ,
206+ args_length : args_len. to_usize ( ) ,
197207 call_args_offset,
198- named_arg ( self . src , named_args, "value" , self . source_map ) ,
199- named_arg ( self . src , named_args, "salt" , self . source_map ) ,
200- ) ,
208+ value : named_arg (
209+ self . src ,
210+ named_args,
211+ "value" ,
212+ self . source_map ,
213+ ) ,
214+ salt : named_arg ( self . src , named_args, "salt" , self . source_map ) ,
215+ } ,
201216 loc : span_to_range ( self . source_map , ty. span ) ,
202217 referenced_contract : contract_id,
203218 } ) ;
@@ -279,7 +294,13 @@ pub(crate) fn remove_bytecode_dependencies(
279294 format ! ( "{vm}.getCode(\" {artifact}\" )" ) ,
280295 ) ) ;
281296 }
282- BytecodeDependencyKind :: New ( name, args_length, call_args_offset, value, salt) => {
297+ BytecodeDependencyKind :: New {
298+ name,
299+ args_length,
300+ call_args_offset,
301+ value,
302+ salt,
303+ } => {
283304 let mut update = format ! ( "{name}(payable({vm}.deployCode({{" ) ;
284305 update. push_str ( & format ! ( "_artifact: \" {artifact}\" " ) ) ;
285306
0 commit comments