@@ -46,12 +46,12 @@ use rustc_ast::*;
4646use rustc_errors:: ErrorGuaranteed ;
4747use rustc_hir:: def_id:: DefId ;
4848use rustc_middle:: span_bug;
49- use rustc_middle:: ty:: { Asyncness , ResolverAstLowering } ;
49+ use rustc_middle:: ty:: Asyncness ;
5050use rustc_span:: { Ident , Span } ;
5151use { rustc_ast as ast, rustc_hir as hir} ;
5252
5353use super :: { GenericArgsMode , ImplTraitContext , LoweringContext , ParamMode } ;
54- use crate :: { AllowReturnTypeNotation , ImplTraitPosition , ResolverAstLoweringExt } ;
54+ use crate :: { AllowReturnTypeNotation , ImplTraitPosition , PerOwnerResolver } ;
5555
5656pub ( crate ) struct DelegationResults < ' hir > {
5757 pub body_id : hir:: BodyId ,
@@ -81,6 +81,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
8181 DefKind :: AssocFn => match def_id. as_local ( ) {
8282 Some ( local_def_id) => self
8383 . resolver
84+ . general
8485 . delegation_fn_sigs
8586 . get ( & local_def_id)
8687 . is_some_and ( |sig| sig. has_self ) ,
@@ -149,7 +150,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
149150 if let Some ( local_sig_id) = sig_id. as_local ( ) {
150151 // Map may be filled incorrectly due to recursive delegation.
151152 // Error will be emitted later during HIR ty lowering.
152- match self . resolver . delegation_fn_sigs . get ( & local_sig_id) {
153+ match self . resolver . general . delegation_fn_sigs . get ( & local_sig_id) {
153154 Some ( sig) => ( sig. param_count , sig. c_variadic ) ,
154155 None => ( 0 , false ) ,
155156 }
@@ -197,7 +198,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
197198 span : Span ,
198199 ) -> hir:: FnSig < ' hir > {
199200 let header = if let Some ( local_sig_id) = sig_id. as_local ( ) {
200- match self . resolver . delegation_fn_sigs . get ( & local_sig_id) {
201+ match self . resolver . general . delegation_fn_sigs . get ( & local_sig_id) {
201202 Some ( sig) => {
202203 let parent = self . tcx . parent ( sig_id) ;
203204 // HACK: we override the default safety instead of generating attributes from the ether.
@@ -279,7 +280,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
279280 && idx == 0
280281 {
281282 let mut self_resolver = SelfResolver {
282- resolver : this. resolver ,
283+ resolver : & mut this. resolver ,
283284 path_id : delegation. id ,
284285 self_param_id : pat_node_id,
285286 } ;
@@ -424,25 +425,25 @@ impl<'hir> LoweringContext<'_, 'hir> {
424425 }
425426}
426427
427- struct SelfResolver < ' a > {
428- resolver : & ' a mut ResolverAstLowering ,
428+ struct SelfResolver < ' a , ' b > {
429+ resolver : & ' b mut PerOwnerResolver < ' a > ,
429430 path_id : NodeId ,
430431 self_param_id : NodeId ,
431432}
432433
433- impl < ' a > SelfResolver < ' a > {
434+ impl SelfResolver < ' _ , ' _ > {
434435 fn try_replace_id ( & mut self , id : NodeId ) {
435- if let Some ( res) = self . resolver . partial_res_map . get ( & id)
436+ if let Some ( res) = self . resolver . general . partial_res_map . get ( & id)
436437 && let Some ( Res :: Local ( sig_id) ) = res. full_res ( )
437438 && sig_id == self . path_id
438439 {
439440 let new_res = PartialRes :: new ( Res :: Local ( self . self_param_id ) ) ;
440- self . resolver . partial_res_map . insert ( id, new_res) ;
441+ self . resolver . general . partial_res_map . insert ( id, new_res) ;
441442 }
442443 }
443444}
444445
445- impl < ' ast , ' a > Visitor < ' ast > for SelfResolver < ' a > {
446+ impl < ' ast > Visitor < ' ast > for SelfResolver < ' _ , ' _ > {
446447 fn visit_path ( & mut self , path : & ' ast Path , id : NodeId ) {
447448 self . try_replace_id ( id) ;
448449 visit:: walk_path ( self , path) ;
0 commit comments