@@ -601,34 +601,17 @@ fn generate_concrete_type_declaration(
601601 type_id : TypeId ,
602602 resolved_type_id : TypeId ,
603603) -> Result < ConcreteTypeId , ErrorEmitted > {
604- let mut new_metadata_types_to_add = Vec :: < program_abi:: TypeMetadataDeclaration > :: new ( ) ;
605- let type_metadata_decl = program_abi:: TypeMetadataDeclaration {
606- metadata_type_id : MetadataTypeId ( type_id. index ( ) ) ,
607- type_field : type_id. get_abi_type_str (
608- handler,
609- & ctx. to_str_context ( ) ,
610- engines,
611- resolved_type_id,
612- ) ?,
613- components : type_id. get_abi_type_components (
614- handler,
615- ctx,
616- engines,
617- metadata_types,
618- concrete_types,
619- resolved_type_id,
620- & mut new_metadata_types_to_add,
621- ) ?,
622- type_parameters : type_id. get_abi_type_parameters (
623- handler,
624- ctx,
625- engines,
626- metadata_types,
627- concrete_types,
628- resolved_type_id,
629- & mut new_metadata_types_to_add,
630- ) ?,
631- } ;
604+ let mut metadata_types_to_add = Vec :: < program_abi:: TypeMetadataDeclaration > :: new ( ) ;
605+ let type_metadata_decl = generate_type_metadata_declaration (
606+ handler,
607+ ctx,
608+ engines,
609+ metadata_types,
610+ concrete_types,
611+ type_id,
612+ resolved_type_id,
613+ & mut metadata_types_to_add,
614+ ) ?;
632615
633616 let metadata_type_id = if type_metadata_decl. type_parameters . is_some ( )
634617 || type_metadata_decl. components . is_some ( )
@@ -653,8 +636,7 @@ fn generate_concrete_type_declaration(
653636 Ok ( type_arguments)
654637 } ) ?;
655638
656- metadata_types. push ( type_metadata_decl) ;
657- metadata_types. extend ( new_metadata_types_to_add) ;
639+ metadata_types. extend ( metadata_types_to_add) ;
658640
659641 let ( type_field, concrete_type_id) =
660642 type_id. get_abi_type_field_and_concrete_id ( handler, ctx, engines, resolved_type_id) ?;
@@ -681,7 +663,7 @@ fn generate_type_metadata_declaration(
681663 type_id : TypeId ,
682664 resolved_type_id : TypeId ,
683665 metadata_types_to_add : & mut Vec < program_abi:: TypeMetadataDeclaration > ,
684- ) -> Result < ( ) , ErrorEmitted > {
666+ ) -> Result < program_abi :: TypeMetadataDeclaration , ErrorEmitted > {
685667 let mut new_metadata_types_to_add = Vec :: < program_abi:: TypeMetadataDeclaration > :: new ( ) ;
686668 let components = type_id. get_abi_type_components (
687669 handler,
@@ -716,7 +698,7 @@ fn generate_type_metadata_declaration(
716698 metadata_types_to_add. push ( type_metadata_decl. clone ( ) ) ;
717699 metadata_types_to_add. extend ( new_metadata_types_to_add) ;
718700
719- Ok ( ( ) )
701+ Ok ( type_metadata_decl )
720702}
721703
722704fn generate_logged_types (
0 commit comments