@@ -47,14 +47,14 @@ enum SelfSemantic {
4747}
4848
4949enum TraitOrTraitImpl {
50- Trait { span : Span , constness : Option < Span > } ,
51- TraitImpl { constness : Const , polarity : ImplPolarity , trait_ref : Span } ,
50+ Trait { span : Span , constness_span : Option < Span > } ,
51+ TraitImpl { constness : Const , polarity : ImplPolarity , trait_ref_span : Span } ,
5252}
5353
5454impl TraitOrTraitImpl {
5555 fn constness ( & self ) -> Option < Span > {
5656 match self {
57- Self :: Trait { constness : Some ( span) , .. }
57+ Self :: Trait { constness_span : Some ( span) , .. }
5858 | Self :: TraitImpl { constness : Const :: Yes ( span) , .. } => Some ( * span) ,
5959 _ => None ,
6060 }
@@ -66,7 +66,7 @@ struct AstValidator<'a> {
6666 features : & ' a Features ,
6767
6868 /// The span of the `extern` in an `extern { ... }` block, if any.
69- extern_mod : Option < Span > ,
69+ extern_mod_span : Option < Span > ,
7070
7171 outer_trait_or_trait_impl : Option < TraitOrTraitImpl > ,
7272
@@ -75,7 +75,7 @@ struct AstValidator<'a> {
7575 /// Used to ban nested `impl Trait`, e.g., `impl Into<impl Debug>`.
7676 /// Nested `impl Trait` _is_ allowed in associated type position,
7777 /// e.g., `impl Iterator<Item = impl Debug>`.
78- outer_impl_trait : Option < Span > ,
78+ outer_impl_trait_span : Option < Span > ,
7979
8080 disallow_tilde_const : Option < TildeConstReason > ,
8181
@@ -96,17 +96,22 @@ impl<'a> AstValidator<'a> {
9696 trait_. map ( |( constness, polarity, trait_ref) | TraitOrTraitImpl :: TraitImpl {
9797 constness,
9898 polarity,
99- trait_ref : trait_ref. path . span ,
99+ trait_ref_span : trait_ref. path . span ,
100100 } ) ,
101101 ) ;
102102 f ( self ) ;
103103 self . outer_trait_or_trait_impl = old;
104104 }
105105
106- fn with_in_trait ( & mut self , span : Span , constness : Option < Span > , f : impl FnOnce ( & mut Self ) ) {
106+ fn with_in_trait (
107+ & mut self ,
108+ span : Span ,
109+ constness_span : Option < Span > ,
110+ f : impl FnOnce ( & mut Self ) ,
111+ ) {
107112 let old = mem:: replace (
108113 & mut self . outer_trait_or_trait_impl ,
109- Some ( TraitOrTraitImpl :: Trait { span, constness } ) ,
114+ Some ( TraitOrTraitImpl :: Trait { span, constness_span } ) ,
110115 ) ;
111116 f ( self ) ;
112117 self . outer_trait_or_trait_impl = old;
@@ -170,10 +175,10 @@ impl<'a> AstValidator<'a> {
170175 Err ( errors:: WhereClauseBeforeTypeAlias { span, sugg } )
171176 }
172177
173- fn with_impl_trait ( & mut self , outer : Option < Span > , f : impl FnOnce ( & mut Self ) ) {
174- let old = mem:: replace ( & mut self . outer_impl_trait , outer ) ;
178+ fn with_impl_trait ( & mut self , outer_span : Option < Span > , f : impl FnOnce ( & mut Self ) ) {
179+ let old = mem:: replace ( & mut self . outer_impl_trait_span , outer_span ) ;
175180 f ( self ) ;
176- self . outer_impl_trait = old;
181+ self . outer_impl_trait_span = old;
177182 }
178183
179184 // Mirrors `visit::walk_ty`, but tracks relevant state.
@@ -258,21 +263,22 @@ impl<'a> AstValidator<'a> {
258263 && let TraitOrTraitImpl :: TraitImpl {
259264 constness : Const :: No ,
260265 polarity : ImplPolarity :: Positive ,
261- trait_ref ,
266+ trait_ref_span ,
262267 ..
263268 } = parent
264269 {
265- Some ( trait_ref . shrink_to_lo ( ) )
270+ Some ( trait_ref_span . shrink_to_lo ( ) )
266271 } else {
267272 None
268273 } ;
269274
270- let make_trait_const_sugg =
271- if const_trait_impl && let TraitOrTraitImpl :: Trait { span, constness : None } = parent {
272- Some ( span. shrink_to_lo ( ) )
273- } else {
274- None
275- } ;
275+ let make_trait_const_sugg = if const_trait_impl
276+ && let TraitOrTraitImpl :: Trait { span, constness_span : None } = parent
277+ {
278+ Some ( span. shrink_to_lo ( ) )
279+ } else {
280+ None
281+ } ;
276282
277283 let parent_constness = parent. constness ( ) ;
278284 self . dcx ( ) . emit_err ( errors:: TraitFnConst {
@@ -448,13 +454,13 @@ impl<'a> AstValidator<'a> {
448454 check_where_clause ( where_clauses. after ) ;
449455 }
450456
451- fn check_foreign_kind_bodyless ( & self , ident : Ident , kind : & str , body : Option < Span > ) {
452- let Some ( body ) = body else {
457+ fn check_foreign_kind_bodyless ( & self , ident : Ident , kind : & str , body_span : Option < Span > ) {
458+ let Some ( body_span ) = body_span else {
453459 return ;
454460 } ;
455461 self . dcx ( ) . emit_err ( errors:: BodyInExtern {
456462 span : ident. span ,
457- body,
463+ body : body_span ,
458464 block : self . current_extern_span ( ) ,
459465 kind,
460466 } ) ;
@@ -473,7 +479,7 @@ impl<'a> AstValidator<'a> {
473479 }
474480
475481 fn current_extern_span ( & self ) -> Span {
476- self . sess . source_map ( ) . guess_head_span ( self . extern_mod . unwrap ( ) )
482+ self . sess . source_map ( ) . guess_head_span ( self . extern_mod_span . unwrap ( ) )
477483 }
478484
479485 /// An `fn` in `extern { ... }` cannot have qualifiers, e.g. `async fn`.
@@ -583,9 +589,10 @@ impl<'a> AstValidator<'a> {
583589 self . dcx ( ) . emit_err ( errors:: ModuleNonAscii { span : ident. span , name : ident. name } ) ;
584590 }
585591
586- fn deny_generic_params ( & self , generics : & Generics , ident : Span ) {
592+ fn deny_generic_params ( & self , generics : & Generics , ident_span : Span ) {
587593 if !generics. params . is_empty ( ) {
588- self . dcx ( ) . emit_err ( errors:: AutoTraitGeneric { span : generics. span , ident } ) ;
594+ self . dcx ( )
595+ . emit_err ( errors:: AutoTraitGeneric { span : generics. span , ident : ident_span } ) ;
589596 }
590597 }
591598
@@ -605,11 +612,11 @@ impl<'a> AstValidator<'a> {
605612 }
606613 }
607614
608- fn deny_items ( & self , trait_items : & [ P < AssocItem > ] , ident : Span ) {
615+ fn deny_items ( & self , trait_items : & [ P < AssocItem > ] , ident_span : Span ) {
609616 if !trait_items. is_empty ( ) {
610617 let spans: Vec < _ > = trait_items. iter ( ) . map ( |i| i. kind . ident ( ) . unwrap ( ) . span ) . collect ( ) ;
611618 let total = trait_items. first ( ) . unwrap ( ) . span . to ( trait_items. last ( ) . unwrap ( ) . span ) ;
612- self . dcx ( ) . emit_err ( errors:: AutoTraitItems { spans, total, ident } ) ;
619+ self . dcx ( ) . emit_err ( errors:: AutoTraitItems { spans, total, ident : ident_span } ) ;
613620 }
614621 }
615622
@@ -694,7 +701,7 @@ impl<'a> AstValidator<'a> {
694701 }
695702 }
696703 TyKind :: ImplTrait ( _, bounds) => {
697- if let Some ( outer_impl_trait_sp) = self . outer_impl_trait {
704+ if let Some ( outer_impl_trait_sp) = self . outer_impl_trait_span {
698705 self . dcx ( ) . emit_err ( errors:: NestedImplTrait {
699706 span : ty. span ,
700707 outer : outer_impl_trait_sp,
@@ -970,7 +977,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
970977 }
971978 ItemKind :: ForeignMod ( ForeignMod { extern_span, abi, safety, .. } ) => {
972979 self . with_in_extern_mod ( * safety, |this| {
973- let old_item = mem:: replace ( & mut this. extern_mod , Some ( item. span ) ) ;
980+ let old_item = mem:: replace ( & mut this. extern_mod_span , Some ( item. span ) ) ;
974981 this. visibility_not_permitted (
975982 & item. vis ,
976983 errors:: VisibilityNotPermittedNote :: IndividualForeignItems ,
@@ -995,7 +1002,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
9951002 this. maybe_lint_missing_abi ( * extern_span, item. id ) ;
9961003 }
9971004 visit:: walk_item ( this, item) ;
998- this. extern_mod = old_item;
1005+ this. extern_mod_span = old_item;
9991006 } ) ;
10001007 }
10011008 ItemKind :: Enum ( _, def, _) => {
@@ -1593,7 +1600,7 @@ fn deny_equality_constraints(
15931600 generics. where_clause . span
15941601 } else {
15951602 let mut span = predicate_span;
1596- let mut prev : Option < Span > = None ;
1603+ let mut prev_span : Option < Span > = None ;
15971604 let mut preds = generics. where_clause . predicates . iter ( ) . peekable ( ) ;
15981605 // Find the predicate that shouldn't have been in the where bound list.
15991606 while let Some ( pred) = preds. next ( ) {
@@ -1603,12 +1610,12 @@ fn deny_equality_constraints(
16031610 if let Some ( next) = preds. peek ( ) {
16041611 // This is the first predicate, remove the trailing comma as well.
16051612 span = span. with_hi ( next. span . lo ( ) ) ;
1606- } else if let Some ( prev ) = prev {
1613+ } else if let Some ( prev_span ) = prev_span {
16071614 // Remove the previous comma as well.
1608- span = span. with_lo ( prev . hi ( ) ) ;
1615+ span = span. with_lo ( prev_span . hi ( ) ) ;
16091616 }
16101617 }
1611- prev = Some ( pred. span ) ;
1618+ prev_span = Some ( pred. span ) ;
16121619 }
16131620 span
16141621 } ;
@@ -1683,10 +1690,10 @@ pub fn check_crate(
16831690 let mut validator = AstValidator {
16841691 sess,
16851692 features,
1686- extern_mod : None ,
1693+ extern_mod_span : None ,
16871694 outer_trait_or_trait_impl : None ,
16881695 has_proc_macro_decls : false ,
1689- outer_impl_trait : None ,
1696+ outer_impl_trait_span : None ,
16901697 disallow_tilde_const : Some ( TildeConstReason :: Item ) ,
16911698 extern_mod_safety : None ,
16921699 lint_buffer : lints,
0 commit comments