@@ -284,7 +284,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
284284 parent_scope : & ParentScope < ' a > ,
285285 finalize : Option < Finalize > ,
286286 ribs : & [ Rib < ' a > ] ,
287- ignore_binding : Option < & ' a NameBinding < ' a > > ,
287+ ignore_binding : Option < NameBinding < ' a > > ,
288288 ) -> Option < LexicalScopeBinding < ' a > > {
289289 assert ! ( ns == TypeNS || ns == ValueNS ) ;
290290 let orig_ident = ident;
@@ -378,8 +378,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
378378 parent_scope : & ParentScope < ' a > ,
379379 finalize : Option < Finalize > ,
380380 force : bool ,
381- ignore_binding : Option < & ' a NameBinding < ' a > > ,
382- ) -> Result < & ' a NameBinding < ' a > , Determinacy > {
381+ ignore_binding : Option < NameBinding < ' a > > ,
382+ ) -> Result < NameBinding < ' a > , Determinacy > {
383383 bitflags:: bitflags! {
384384 struct Flags : u8 {
385385 const MACRO_RULES = 1 << 0 ;
@@ -415,7 +415,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
415415 // }
416416 // So we have to save the innermost solution and continue searching in outer scopes
417417 // to detect potential ambiguities.
418- let mut innermost_result: Option < ( & NameBinding < ' _ > , Flags ) > = None ;
418+ let mut innermost_result: Option < ( NameBinding < ' _ > , Flags ) > = None ;
419419 let mut determinacy = Determinacy :: Determined ;
420420
421421 // Go through all the scopes and try to resolve the name.
@@ -717,7 +717,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
717717 ident : Ident ,
718718 ns : Namespace ,
719719 parent_scope : & ParentScope < ' a > ,
720- ) -> Result < & ' a NameBinding < ' a > , Determinacy > {
720+ ) -> Result < NameBinding < ' a > , Determinacy > {
721721 self . resolve_ident_in_module_ext ( module, ident, ns, parent_scope, None , None )
722722 . map_err ( |( determinacy, _) | determinacy)
723723 }
@@ -730,8 +730,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
730730 ns : Namespace ,
731731 parent_scope : & ParentScope < ' a > ,
732732 finalize : Option < Finalize > ,
733- ignore_binding : Option < & ' a NameBinding < ' a > > ,
734- ) -> Result < & ' a NameBinding < ' a > , Determinacy > {
733+ ignore_binding : Option < NameBinding < ' a > > ,
734+ ) -> Result < NameBinding < ' a > , Determinacy > {
735735 self . resolve_ident_in_module_ext ( module, ident, ns, parent_scope, finalize, ignore_binding)
736736 . map_err ( |( determinacy, _) | determinacy)
737737 }
@@ -744,8 +744,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
744744 ns : Namespace ,
745745 parent_scope : & ParentScope < ' a > ,
746746 finalize : Option < Finalize > ,
747- ignore_binding : Option < & ' a NameBinding < ' a > > ,
748- ) -> Result < & ' a NameBinding < ' a > , ( Determinacy , Weak ) > {
747+ ignore_binding : Option < NameBinding < ' a > > ,
748+ ) -> Result < NameBinding < ' a > , ( Determinacy , Weak ) > {
749749 let tmp_parent_scope;
750750 let mut adjusted_parent_scope = parent_scope;
751751 match module {
@@ -782,8 +782,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
782782 ns : Namespace ,
783783 parent_scope : & ParentScope < ' a > ,
784784 finalize : Option < Finalize > ,
785- ignore_binding : Option < & ' a NameBinding < ' a > > ,
786- ) -> Result < & ' a NameBinding < ' a > , Determinacy > {
785+ ignore_binding : Option < NameBinding < ' a > > ,
786+ ) -> Result < NameBinding < ' a > , Determinacy > {
787787 self . resolve_ident_in_module_unadjusted_ext (
788788 module,
789789 ident,
@@ -809,8 +809,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
809809 finalize : Option < Finalize > ,
810810 // This binding should be ignored during in-module resolution, so that we don't get
811811 // "self-confirming" import resolutions during import validation and checking.
812- ignore_binding : Option < & ' a NameBinding < ' a > > ,
813- ) -> Result < & ' a NameBinding < ' a > , ( Determinacy , Weak ) > {
812+ ignore_binding : Option < NameBinding < ' a > > ,
813+ ) -> Result < NameBinding < ' a > , ( Determinacy , Weak ) > {
814814 let module = match module {
815815 ModuleOrUniformRoot :: Module ( module) => module,
816816 ModuleOrUniformRoot :: CrateRootAndExternPrelude => {
@@ -873,13 +873,9 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
873873 // binding if it exists. What we really want here is having two separate scopes in
874874 // a module - one for non-globs and one for globs, but until that's done use this
875875 // hack to avoid inconsistent resolution ICEs during import validation.
876- let binding =
877- [ resolution. binding , resolution. shadowed_glob ] . into_iter ( ) . find_map ( |binding| {
878- match ( binding, ignore_binding) {
879- ( Some ( binding) , Some ( ignored) ) if ptr:: eq ( binding, ignored) => None ,
880- _ => binding,
881- }
882- } ) ;
876+ let binding = [ resolution. binding , resolution. shadowed_glob ]
877+ . into_iter ( )
878+ . find_map ( |binding| if binding == ignore_binding { None } else { binding } ) ;
883879
884880 if let Some ( Finalize { path_span, report_private, .. } ) = finalize {
885881 let Some ( binding) = binding else {
@@ -930,7 +926,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
930926 return Ok ( binding) ;
931927 }
932928
933- let check_usable = |this : & mut Self , binding : & ' a NameBinding < ' a > | {
929+ let check_usable = |this : & mut Self , binding : NameBinding < ' a > | {
934930 let usable = this. is_accessible_from ( binding. vis , parent_scope. module ) ;
935931 if usable { Ok ( binding) } else { Err ( ( Determined , Weak :: No ) ) }
936932 } ;
@@ -1352,7 +1348,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
13521348 opt_ns : Option < Namespace > , // `None` indicates a module path in import
13531349 parent_scope : & ParentScope < ' a > ,
13541350 finalize : Option < Finalize > ,
1355- ignore_binding : Option < & ' a NameBinding < ' a > > ,
1351+ ignore_binding : Option < NameBinding < ' a > > ,
13561352 ) -> PathResult < ' a > {
13571353 self . resolve_path_with_ribs ( path, opt_ns, parent_scope, finalize, None , ignore_binding)
13581354 }
@@ -1364,7 +1360,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
13641360 parent_scope : & ParentScope < ' a > ,
13651361 finalize : Option < Finalize > ,
13661362 ribs : Option < & PerNS < Vec < Rib < ' a > > > > ,
1367- ignore_binding : Option < & ' a NameBinding < ' a > > ,
1363+ ignore_binding : Option < NameBinding < ' a > > ,
13681364 ) -> PathResult < ' a > {
13691365 let mut module = None ;
13701366 let mut allow_super = true ;
0 commit comments