@@ -91,9 +91,9 @@ mod pat;
9191mod path;
9292pub mod stability;
9393
94- struct LoweringContext < ' hir > {
94+ struct LoweringContext < ' a , ' hir > {
9595 tcx : TyCtxt < ' hir > ,
96- resolver : & ' hir ResolverAstLowering < ' hir > ,
96+ resolver : & ' a ResolverAstLowering < ' hir > ,
9797 current_disambiguator : PerParentDisambiguatorState ,
9898
9999 /// Used to allocate HIR nodes.
@@ -161,8 +161,8 @@ struct LoweringContext<'hir> {
161161 attribute_parser : AttributeParser < ' hir > ,
162162}
163163
164- impl < ' hir > LoweringContext < ' hir > {
165- fn new ( tcx : TyCtxt < ' hir > , resolver : & ' hir ResolverAstLowering < ' hir > ) -> Self {
164+ impl < ' a , ' hir > LoweringContext < ' a , ' hir > {
165+ fn new ( tcx : TyCtxt < ' hir > , resolver : & ' a ResolverAstLowering < ' hir > ) -> Self {
166166 let registered_tools = tcx. registered_tools ( ( ) ) . iter ( ) . map ( |x| x. name ) . collect ( ) ;
167167 Self {
168168 tcx,
@@ -531,8 +531,7 @@ pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> mid_hir::Crate<'_> {
531531 tcx. ensure_done ( ) . early_lint_checks ( ( ) ) ;
532532 tcx. ensure_done ( ) . debugger_visualizers ( LOCAL_CRATE ) ;
533533 tcx. ensure_done ( ) . get_lang_items ( ( ) ) ;
534- let ( resolver, krate) = tcx. resolver_for_lowering ( ) ;
535- let krate = krate. steal ( ) ;
534+ let ( resolver, krate) = tcx. resolver_for_lowering ( ) . steal ( ) ;
536535
537536 let ast_index = index_crate ( & resolver, & krate) ;
538537 let mut owners = IndexVec :: from_fn_n (
@@ -542,7 +541,7 @@ pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> mid_hir::Crate<'_> {
542541
543542 let mut lowerer = item:: ItemLowerer {
544543 tcx,
545- resolver,
544+ resolver : & resolver ,
546545 ast_index : & ast_index,
547546 owners : Owners :: IndexVec ( & mut owners) ,
548547 } ;
@@ -563,16 +562,15 @@ pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> mid_hir::Crate<'_> {
563562 let opt_hir_hash =
564563 if tcx. needs_crate_hash ( ) { Some ( compute_hir_hash ( tcx, & owners) ) } else { None } ;
565564
566- let ast_krate = Steal :: new ( krate) ;
567- mid_hir:: Crate :: new ( owners, delayed_ids, ast_krate , opt_hir_hash)
565+ let delayed_resolver = Steal :: new ( ( resolver , krate) ) ;
566+ mid_hir:: Crate :: new ( owners, delayed_ids, delayed_resolver , opt_hir_hash)
568567}
569568
570569/// Lowers an AST owner corresponding to `def_id`, now only delegations are lowered this way.
571570pub fn lower_delayed_owner ( tcx : TyCtxt < ' _ > , def_id : LocalDefId ) {
572571 let krate = tcx. hir_crate ( ( ) ) ;
573572
574- let ( resolver, _) = tcx. resolver_for_lowering ( ) ;
575- let krate = & * krate. ast_krate . borrow ( ) ;
573+ let ( resolver, krate) = & * krate. delayed_resolver . borrow ( ) ;
576574
577575 // FIXME!!!(fn_delegation): make ast index lifetime same as resolver,
578576 // as it is too bad to reindex whole crate on each delegation lowering.
@@ -620,7 +618,7 @@ enum GenericArgsMode {
620618 Silence ,
621619}
622620
623- impl < ' hir > LoweringContext < ' hir > {
621+ impl < ' hir > LoweringContext < ' _ , ' hir > {
624622 fn create_def (
625623 & mut self ,
626624 node_id : ast:: NodeId ,
@@ -3029,7 +3027,7 @@ impl<'hir> GenericArgsCtor<'hir> {
30293027 && self . parenthesized == hir:: GenericArgsParentheses :: No
30303028 }
30313029
3032- fn into_generic_args ( self , this : & LoweringContext < ' hir > ) -> & ' hir hir:: GenericArgs < ' hir > {
3030+ fn into_generic_args ( self , this : & LoweringContext < ' _ , ' hir > ) -> & ' hir hir:: GenericArgs < ' hir > {
30333031 let ga = hir:: GenericArgs {
30343032 args : this. arena . alloc_from_iter ( self . args ) ,
30353033 constraints : self . constraints ,
0 commit comments