@@ -990,18 +990,22 @@ impl World {
990990 types : & ' a Types ,
991991 ) -> IndexMap < & str , ItemKind > {
992992 let mut interfaces = IndexMap :: new ( ) ;
993+ let mut add_interface_for_used_type = |used_item : & UsedType | {
994+ let used_interface_id = used_item. interface ;
995+ // The id must be set since used interfaces are always named.
996+ let used_interface_name = types[ used_interface_id] . id . as_deref ( ) . unwrap ( ) ;
997+ interfaces. insert ( used_interface_name, ItemKind :: Instance ( used_interface_id) ) ;
998+ } ;
999+
1000+ for ( _, used_type) in self . uses . iter ( ) {
1001+ add_interface_for_used_type ( used_type) ;
1002+ }
1003+
9931004 for ( _, import) in self . imports . iter ( ) {
9941005 if let ItemKind :: Instance ( interface_id) = import {
9951006 let import = & types[ * interface_id] ;
9961007 for ( _, used_item) in & import. uses {
997- let used_interface_id = used_item. interface ;
998- let used_interface = & types[ used_interface_id] ;
999- // The id must be set since used interfaces are always named.
1000- let used_interface_name = used_interface. id . as_ref ( ) . unwrap ( ) ;
1001- interfaces. insert (
1002- used_interface_name. as_str ( ) ,
1003- ItemKind :: Instance ( used_interface_id) ,
1004- ) ;
1008+ add_interface_for_used_type ( used_item) ;
10051009 }
10061010 }
10071011 }
0 commit comments