@@ -47,14 +47,14 @@ enum SelfSemantic {
47
47
}
48
48
49
49
enum 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 } ,
52
52
}
53
53
54
54
impl TraitOrTraitImpl {
55
55
fn constness ( & self ) -> Option < Span > {
56
56
match self {
57
- Self :: Trait { constness : Some ( span) , .. }
57
+ Self :: Trait { constness_span : Some ( span) , .. }
58
58
| Self :: TraitImpl { constness : Const :: Yes ( span) , .. } => Some ( * span) ,
59
59
_ => None ,
60
60
}
@@ -66,7 +66,7 @@ struct AstValidator<'a> {
66
66
features : & ' a Features ,
67
67
68
68
/// The span of the `extern` in an `extern { ... }` block, if any.
69
- extern_mod : Option < Span > ,
69
+ extern_mod_span : Option < Span > ,
70
70
71
71
outer_trait_or_trait_impl : Option < TraitOrTraitImpl > ,
72
72
@@ -75,7 +75,7 @@ struct AstValidator<'a> {
75
75
/// Used to ban nested `impl Trait`, e.g., `impl Into<impl Debug>`.
76
76
/// Nested `impl Trait` _is_ allowed in associated type position,
77
77
/// e.g., `impl Iterator<Item = impl Debug>`.
78
- outer_impl_trait : Option < Span > ,
78
+ outer_impl_trait_span : Option < Span > ,
79
79
80
80
disallow_tilde_const : Option < TildeConstReason > ,
81
81
@@ -96,17 +96,22 @@ impl<'a> AstValidator<'a> {
96
96
trait_. map ( |( constness, polarity, trait_ref) | TraitOrTraitImpl :: TraitImpl {
97
97
constness,
98
98
polarity,
99
- trait_ref : trait_ref. path . span ,
99
+ trait_ref_span : trait_ref. path . span ,
100
100
} ) ,
101
101
) ;
102
102
f ( self ) ;
103
103
self . outer_trait_or_trait_impl = old;
104
104
}
105
105
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
+ ) {
107
112
let old = mem:: replace (
108
113
& mut self . outer_trait_or_trait_impl ,
109
- Some ( TraitOrTraitImpl :: Trait { span, constness } ) ,
114
+ Some ( TraitOrTraitImpl :: Trait { span, constness_span } ) ,
110
115
) ;
111
116
f ( self ) ;
112
117
self . outer_trait_or_trait_impl = old;
@@ -170,10 +175,10 @@ impl<'a> AstValidator<'a> {
170
175
Err ( errors:: WhereClauseBeforeTypeAlias { span, sugg } )
171
176
}
172
177
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 ) ;
175
180
f ( self ) ;
176
- self . outer_impl_trait = old;
181
+ self . outer_impl_trait_span = old;
177
182
}
178
183
179
184
// Mirrors `visit::walk_ty`, but tracks relevant state.
@@ -258,21 +263,22 @@ impl<'a> AstValidator<'a> {
258
263
&& let TraitOrTraitImpl :: TraitImpl {
259
264
constness : Const :: No ,
260
265
polarity : ImplPolarity :: Positive ,
261
- trait_ref ,
266
+ trait_ref_span ,
262
267
..
263
268
} = parent
264
269
{
265
- Some ( trait_ref . shrink_to_lo ( ) )
270
+ Some ( trait_ref_span . shrink_to_lo ( ) )
266
271
} else {
267
272
None
268
273
} ;
269
274
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
+ } ;
276
282
277
283
let parent_constness = parent. constness ( ) ;
278
284
self . dcx ( ) . emit_err ( errors:: TraitFnConst {
@@ -448,13 +454,13 @@ impl<'a> AstValidator<'a> {
448
454
check_where_clause ( where_clauses. after ) ;
449
455
}
450
456
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 {
453
459
return ;
454
460
} ;
455
461
self . dcx ( ) . emit_err ( errors:: BodyInExtern {
456
462
span : ident. span ,
457
- body,
463
+ body : body_span ,
458
464
block : self . current_extern_span ( ) ,
459
465
kind,
460
466
} ) ;
@@ -473,7 +479,7 @@ impl<'a> AstValidator<'a> {
473
479
}
474
480
475
481
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 ( ) )
477
483
}
478
484
479
485
/// An `fn` in `extern { ... }` cannot have qualifiers, e.g. `async fn`.
@@ -583,9 +589,10 @@ impl<'a> AstValidator<'a> {
583
589
self . dcx ( ) . emit_err ( errors:: ModuleNonAscii { span : ident. span , name : ident. name } ) ;
584
590
}
585
591
586
- fn deny_generic_params ( & self , generics : & Generics , ident : Span ) {
592
+ fn deny_generic_params ( & self , generics : & Generics , ident_span : Span ) {
587
593
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 } ) ;
589
596
}
590
597
}
591
598
@@ -605,11 +612,11 @@ impl<'a> AstValidator<'a> {
605
612
}
606
613
}
607
614
608
- fn deny_items ( & self , trait_items : & [ P < AssocItem > ] , ident : Span ) {
615
+ fn deny_items ( & self , trait_items : & [ P < AssocItem > ] , ident_span : Span ) {
609
616
if !trait_items. is_empty ( ) {
610
617
let spans: Vec < _ > = trait_items. iter ( ) . map ( |i| i. kind . ident ( ) . unwrap ( ) . span ) . collect ( ) ;
611
618
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 } ) ;
613
620
}
614
621
}
615
622
@@ -694,7 +701,7 @@ impl<'a> AstValidator<'a> {
694
701
}
695
702
}
696
703
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 {
698
705
self . dcx ( ) . emit_err ( errors:: NestedImplTrait {
699
706
span : ty. span ,
700
707
outer : outer_impl_trait_sp,
@@ -970,7 +977,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
970
977
}
971
978
ItemKind :: ForeignMod ( ForeignMod { extern_span, abi, safety, .. } ) => {
972
979
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 ) ) ;
974
981
this. visibility_not_permitted (
975
982
& item. vis ,
976
983
errors:: VisibilityNotPermittedNote :: IndividualForeignItems ,
@@ -995,7 +1002,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
995
1002
this. maybe_lint_missing_abi ( * extern_span, item. id ) ;
996
1003
}
997
1004
visit:: walk_item ( this, item) ;
998
- this. extern_mod = old_item;
1005
+ this. extern_mod_span = old_item;
999
1006
} ) ;
1000
1007
}
1001
1008
ItemKind :: Enum ( _, def, _) => {
@@ -1593,7 +1600,7 @@ fn deny_equality_constraints(
1593
1600
generics. where_clause . span
1594
1601
} else {
1595
1602
let mut span = predicate_span;
1596
- let mut prev : Option < Span > = None ;
1603
+ let mut prev_span : Option < Span > = None ;
1597
1604
let mut preds = generics. where_clause . predicates . iter ( ) . peekable ( ) ;
1598
1605
// Find the predicate that shouldn't have been in the where bound list.
1599
1606
while let Some ( pred) = preds. next ( ) {
@@ -1603,12 +1610,12 @@ fn deny_equality_constraints(
1603
1610
if let Some ( next) = preds. peek ( ) {
1604
1611
// This is the first predicate, remove the trailing comma as well.
1605
1612
span = span. with_hi ( next. span . lo ( ) ) ;
1606
- } else if let Some ( prev ) = prev {
1613
+ } else if let Some ( prev_span ) = prev_span {
1607
1614
// Remove the previous comma as well.
1608
- span = span. with_lo ( prev . hi ( ) ) ;
1615
+ span = span. with_lo ( prev_span . hi ( ) ) ;
1609
1616
}
1610
1617
}
1611
- prev = Some ( pred. span ) ;
1618
+ prev_span = Some ( pred. span ) ;
1612
1619
}
1613
1620
span
1614
1621
} ;
@@ -1683,10 +1690,10 @@ pub fn check_crate(
1683
1690
let mut validator = AstValidator {
1684
1691
sess,
1685
1692
features,
1686
- extern_mod : None ,
1693
+ extern_mod_span : None ,
1687
1694
outer_trait_or_trait_impl : None ,
1688
1695
has_proc_macro_decls : false ,
1689
- outer_impl_trait : None ,
1696
+ outer_impl_trait_span : None ,
1690
1697
disallow_tilde_const : Some ( TildeConstReason :: Item ) ,
1691
1698
extern_mod_safety : None ,
1692
1699
lint_buffer : lints,
0 commit comments