@@ -380,7 +380,7 @@ pub(crate) fn lookup_method(
380380 traits_in_scope : & FxHashSet < TraitId > ,
381381 visible_from_module : Option < ModuleId > ,
382382 name : & Name ,
383- ) -> Option < ( Ty , FunctionId ) > {
383+ ) -> Option < ( Canonical < Ty > , FunctionId ) > {
384384 iterate_method_candidates (
385385 ty,
386386 db,
@@ -421,7 +421,7 @@ pub fn iterate_method_candidates<T>(
421421 visible_from_module : Option < ModuleId > ,
422422 name : Option < & Name > ,
423423 mode : LookupMode ,
424- mut callback : impl FnMut ( & Ty , AssocItemId ) -> Option < T > ,
424+ mut callback : impl FnMut ( & Canonical < Ty > , AssocItemId ) -> Option < T > ,
425425) -> Option < T > {
426426 let mut slot = None ;
427427 iterate_method_candidates_dyn (
@@ -454,7 +454,7 @@ pub fn iterate_method_candidates_dyn(
454454 visible_from_module : Option < ModuleId > ,
455455 name : Option < & Name > ,
456456 mode : LookupMode ,
457- callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
457+ callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
458458) -> ControlFlow < ( ) > {
459459 match mode {
460460 LookupMode :: MethodCall => {
@@ -520,7 +520,7 @@ fn iterate_method_candidates_with_autoref(
520520 traits_in_scope : & FxHashSet < TraitId > ,
521521 visible_from_module : Option < ModuleId > ,
522522 name : Option < & Name > ,
523- mut callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
523+ mut callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
524524) -> ControlFlow < ( ) > {
525525 iterate_method_candidates_by_receiver (
526526 & deref_chain[ 0 ] ,
@@ -580,7 +580,7 @@ fn iterate_method_candidates_by_receiver(
580580 traits_in_scope : & FxHashSet < TraitId > ,
581581 visible_from_module : Option < ModuleId > ,
582582 name : Option < & Name > ,
583- mut callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
583+ mut callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
584584) -> ControlFlow < ( ) > {
585585 // We're looking for methods with *receiver* type receiver_ty. These could
586586 // be found in any of the derefs of receiver_ty, so we have to go through
@@ -622,7 +622,7 @@ fn iterate_method_candidates_for_self_ty(
622622 traits_in_scope : & FxHashSet < TraitId > ,
623623 visible_from_module : Option < ModuleId > ,
624624 name : Option < & Name > ,
625- mut callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
625+ mut callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
626626) -> ControlFlow < ( ) > {
627627 iterate_inherent_methods (
628628 self_ty,
@@ -645,7 +645,7 @@ fn iterate_trait_method_candidates(
645645 traits_in_scope : & FxHashSet < TraitId > ,
646646 name : Option < & Name > ,
647647 receiver_ty : Option < & Canonical < Ty > > ,
648- callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
648+ callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
649649) -> ControlFlow < ( ) > {
650650 let receiver_is_array = matches ! ( self_ty. value. kind( & Interner ) , chalk_ir:: TyKind :: Array ( ..) ) ;
651651 // if ty is `dyn Trait`, the trait doesn't need to be in scope
@@ -697,7 +697,7 @@ fn iterate_trait_method_candidates(
697697 }
698698 known_implemented = true ;
699699 // FIXME: we shouldn't be ignoring the binders here
700- callback ( & self_ty. value , * item) ?
700+ callback ( & self_ty, * item) ?
701701 }
702702 }
703703 ControlFlow :: Continue ( ( ) )
@@ -738,7 +738,7 @@ fn iterate_inherent_methods(
738738 receiver_ty : Option < & Canonical < Ty > > ,
739739 krate : CrateId ,
740740 visible_from_module : Option < ModuleId > ,
741- callback : & mut dyn FnMut ( & Ty , AssocItemId ) -> ControlFlow < ( ) > ,
741+ callback : & mut dyn FnMut ( & Canonical < Ty > , AssocItemId ) -> ControlFlow < ( ) > ,
742742) -> ControlFlow < ( ) > {
743743 let def_crates = match def_crates ( db, & self_ty. value , krate) {
744744 Some ( k) => k,
@@ -773,7 +773,7 @@ fn iterate_inherent_methods(
773773 cov_mark:: hit!( impl_self_type_match_without_receiver) ;
774774 continue ;
775775 }
776- let receiver_ty = receiver_ty. map ( |x| & x . value ) . unwrap_or ( & self_ty. value ) ;
776+ let receiver_ty = receiver_ty. unwrap_or ( & self_ty) ;
777777 callback ( receiver_ty, item) ?;
778778 }
779779 }
0 commit comments