@@ -925,10 +925,7 @@ where
925925 // show up in the bounds, but just ones that come from substituting
926926 // `Self` with the dyn type.
927927 let proj = proj. with_self_ty ( cx, trait_ref. self_ty ( ) ) ;
928- replace_projection_with
929- . entry ( proj. def_id ( ) . into ( ) )
930- . or_default ( )
931- . push ( bound. rebind ( proj) ) ;
928+ replace_projection_with. entry ( proj. def_id ( ) ) . or_default ( ) . push ( bound. rebind ( proj) ) ;
932929 }
933930 }
934931
@@ -952,7 +949,7 @@ struct ReplaceProjectionWith<'a, 'b, I: Interner, D: SolverDelegate<Interner = I
952949 ecx : & ' a mut EvalCtxt < ' b , D > ,
953950 param_env : I :: ParamEnv ,
954951 self_ty : I :: Ty ,
955- mapping : & ' a HashMap < I :: DefId , Vec < ty:: Binder < I , ty:: ProjectionPredicate < I > > > > ,
952+ mapping : & ' a HashMap < I :: TraitAssocTermId , Vec < ty:: Binder < I , ty:: ProjectionPredicate < I > > > > ,
956953 nested : Vec < Goal < I , I :: Predicate > > ,
957954}
958955
@@ -966,7 +963,7 @@ where
966963 source_projection : ty:: Binder < I , ty:: ProjectionPredicate < I > > ,
967964 target_projection : ty:: AliasTerm < I > ,
968965 ) -> bool {
969- source_projection. item_def_id ( ) == target_projection. def_id ( )
966+ source_projection. item_def_id ( ) == target_projection. expect_projection_def_id ( )
970967 && self
971968 . ecx
972969 . probe ( |_| ProbeKind :: ProjectionCompatibility )
@@ -990,7 +987,7 @@ where
990987 return Ok ( None ) ;
991988 }
992989
993- let Some ( replacements) = self . mapping . get ( & alias_term. def_id ( ) ) else {
990+ let Some ( replacements) = self . mapping . get ( & alias_term. expect_projection_def_id ( ) ) else {
994991 return Ok ( None ) ;
995992 } ;
996993
0 commit comments