@@ -46,12 +46,12 @@ use rustc_ast::*;
46
46
use rustc_errors:: ErrorGuaranteed ;
47
47
use rustc_hir:: def_id:: DefId ;
48
48
use rustc_middle:: span_bug;
49
- use rustc_middle:: ty:: { Asyncness , ResolverAstLowering } ;
49
+ use rustc_middle:: ty:: Asyncness ;
50
50
use rustc_span:: { Ident , Span } ;
51
51
use { rustc_ast as ast, rustc_hir as hir} ;
52
52
53
53
use super :: { GenericArgsMode , ImplTraitContext , LoweringContext , ParamMode } ;
54
- use crate :: { AllowReturnTypeNotation , ImplTraitPosition , ResolverAstLoweringExt } ;
54
+ use crate :: { AllowReturnTypeNotation , ImplTraitPosition , PerOwnerResolver } ;
55
55
56
56
pub ( crate ) struct DelegationResults < ' hir > {
57
57
pub body_id : hir:: BodyId ,
@@ -81,6 +81,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
81
81
DefKind :: AssocFn => match def_id. as_local ( ) {
82
82
Some ( local_def_id) => self
83
83
. resolver
84
+ . general
84
85
. delegation_fn_sigs
85
86
. get ( & local_def_id)
86
87
. is_some_and ( |sig| sig. has_self ) ,
@@ -149,7 +150,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
149
150
if let Some ( local_sig_id) = sig_id. as_local ( ) {
150
151
// Map may be filled incorrectly due to recursive delegation.
151
152
// 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) {
153
154
Some ( sig) => ( sig. param_count , sig. c_variadic ) ,
154
155
None => ( 0 , false ) ,
155
156
}
@@ -197,7 +198,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
197
198
span : Span ,
198
199
) -> hir:: FnSig < ' hir > {
199
200
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) {
201
202
Some ( sig) => {
202
203
let parent = self . tcx . parent ( sig_id) ;
203
204
// HACK: we override the default safety instead of generating attributes from the ether.
@@ -279,7 +280,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
279
280
&& idx == 0
280
281
{
281
282
let mut self_resolver = SelfResolver {
282
- resolver : this. resolver ,
283
+ resolver : & mut this. resolver ,
283
284
path_id : delegation. id ,
284
285
self_param_id : pat_node_id,
285
286
} ;
@@ -424,25 +425,25 @@ impl<'hir> LoweringContext<'_, 'hir> {
424
425
}
425
426
}
426
427
427
- struct SelfResolver < ' a > {
428
- resolver : & ' a mut ResolverAstLowering ,
428
+ struct SelfResolver < ' a , ' b > {
429
+ resolver : & ' b mut PerOwnerResolver < ' a > ,
429
430
path_id : NodeId ,
430
431
self_param_id : NodeId ,
431
432
}
432
433
433
- impl < ' a > SelfResolver < ' a > {
434
+ impl SelfResolver < ' _ , ' _ > {
434
435
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)
436
437
&& let Some ( Res :: Local ( sig_id) ) = res. full_res ( )
437
438
&& sig_id == self . path_id
438
439
{
439
440
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) ;
441
442
}
442
443
}
443
444
}
444
445
445
- impl < ' ast , ' a > Visitor < ' ast > for SelfResolver < ' a > {
446
+ impl < ' ast > Visitor < ' ast > for SelfResolver < ' _ , ' _ > {
446
447
fn visit_path ( & mut self , path : & ' ast Path , id : NodeId ) {
447
448
self . try_replace_id ( id) ;
448
449
visit:: walk_path ( self , path) ;
0 commit comments