File tree Expand file tree Collapse file tree 6 files changed +13
-7
lines changed 
compiler/rustc_ty_utils/src Expand file tree Collapse file tree 6 files changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -383,6 +383,8 @@ fn impl_associated_item_for_impl_trait_in_trait(
383383    impl_assoc_ty. impl_defaultness ( tcx. impl_defaultness ( impl_fn_def_id) ) ; 
384384
385385    // Copy generics_of the trait's associated item but the impl as the parent. 
386+     // FIXME(-Zlower-impl-trait-in-trait-to-assoc-ty) resolves to the trait instead of the impl 
387+     // generics. 
386388    impl_assoc_ty. generics_of ( { 
387389        let  trait_assoc_generics = tcx. generics_of ( trait_assoc_def_id) ; 
388390        let  trait_assoc_parent_count = trait_assoc_generics. parent_count ; 
@@ -391,16 +393,10 @@ fn impl_associated_item_for_impl_trait_in_trait(
391393        let  parent_generics = tcx. generics_of ( impl_def_id) ; 
392394        let  parent_count = parent_generics. parent_count  + parent_generics. params . len ( ) ; 
393395
394-         let  mut  impl_fn_params = tcx. generics_of ( impl_fn_def_id) . params . clone ( ) ; 
395- 
396396        for  param in  & mut  params { 
397-             param. index  = param. index  + parent_count as  u32  + impl_fn_params. len ( )  as  u32 
398-                 - trait_assoc_parent_count as  u32 ; 
397+             param. index  = param. index  + parent_count as  u32  - trait_assoc_parent_count as  u32 ; 
399398        } 
400399
401-         impl_fn_params. extend ( params) ; 
402-         params = impl_fn_params; 
403- 
404400        let  param_def_id_to_index =
405401            params. iter ( ) . map ( |param| ( param. def_id ,  param. index ) ) . collect ( ) ; 
406402
Original file line number Diff line number Diff line change 11// check-pass 
22// edition:2021 
3+ // [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty 
4+ // revisions: current next 
35
46#![ feature( async_fn_in_trait) ]  
57#![ allow( incomplete_features) ]  
Original file line number Diff line number Diff line change 11// check-pass 
22// edition:2021 
3+ // [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty 
4+ // revisions: current next 
35
46#![ feature( async_fn_in_trait,  return_position_impl_trait_in_trait) ]  
57#![ allow( incomplete_features) ]  
Original file line number Diff line number Diff line change 11// check-pass 
2+ // [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty 
3+ // revisions: current next 
24
35#![ feature( return_position_impl_trait_in_trait) ]  
46#![ allow( incomplete_features) ]  
Original file line number Diff line number Diff line change 11// check-pass 
2+ // [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty 
3+ // revisions: current next 
24
35#![ feature( return_position_impl_trait_in_trait) ]  
46#![ allow( incomplete_features) ]  
Original file line number Diff line number Diff line change 11// check-pass 
22// edition: 2021 
3+ // [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty 
4+ // revisions: current next 
35
46#![ feature( return_position_impl_trait_in_trait) ]  
57#![ allow( incomplete_features) ]  
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments