@@ -220,8 +220,8 @@ impl<'a> AstValidator<'a> {
220220 }
221221 }
222222
223- fn err_handler ( & self ) -> & rustc_errors:: Handler {
224- self . session . diagnostic ( )
223+ fn dcx ( & self ) -> & rustc_errors:: DiagCtxt {
224+ self . session . dcx ( )
225225 }
226226
227227 fn check_lifetime ( & self , ident : Ident ) {
@@ -269,7 +269,7 @@ impl<'a> AstValidator<'a> {
269269 ) {
270270 return ;
271271 }
272- self . err_handler ( ) . emit_err ( errors:: InvalidUnnamedFieldTy { span, ty_span : ty. span } ) ;
272+ self . dcx ( ) . emit_err ( errors:: InvalidUnnamedFieldTy { span, ty_span : ty. span } ) ;
273273 }
274274
275275 fn deny_anon_struct_or_union ( & self , ty : & Ty ) {
@@ -278,15 +278,14 @@ impl<'a> AstValidator<'a> {
278278 TyKind :: AnonUnion ( ..) => "union" ,
279279 _ => return ,
280280 } ;
281- self . err_handler ( )
282- . emit_err ( errors:: AnonStructOrUnionNotAllowed { struct_or_union, span : ty. span } ) ;
281+ self . dcx ( ) . emit_err ( errors:: AnonStructOrUnionNotAllowed { struct_or_union, span : ty. span } ) ;
283282 }
284283
285284 fn deny_unnamed_field ( & self , field : & FieldDef ) {
286285 if let Some ( ident) = field. ident
287286 && ident. name == kw:: Underscore
288287 {
289- self . err_handler ( )
288+ self . dcx ( )
290289 . emit_err ( errors:: InvalidUnnamedField { span : field. span , ident_span : ident. span } ) ;
291290 }
292291 }
@@ -392,7 +391,7 @@ impl<'a> AstValidator<'a> {
392391 [ b0] => b0. span ( ) ,
393392 [ b0, .., bl] => b0. span ( ) . to ( bl. span ( ) ) ,
394393 } ;
395- self . err_handler ( ) . emit_err ( errors:: BoundInContext { span, ctx } ) ;
394+ self . dcx ( ) . emit_err ( errors:: BoundInContext { span, ctx } ) ;
396395 }
397396
398397 fn check_foreign_ty_genericless (
@@ -402,7 +401,7 @@ impl<'a> AstValidator<'a> {
402401 after_where_clause : & TyAliasWhereClause ,
403402 ) {
404403 let cannot_have = |span, descr, remove_descr| {
405- self . err_handler ( ) . emit_err ( errors:: ExternTypesCannotHave {
404+ self . dcx ( ) . emit_err ( errors:: ExternTypesCannotHave {
406405 span,
407406 descr,
408407 remove_descr,
@@ -428,7 +427,7 @@ impl<'a> AstValidator<'a> {
428427 let Some ( body) = body else {
429428 return ;
430429 } ;
431- self . err_handler ( ) . emit_err ( errors:: BodyInExtern {
430+ self . dcx ( ) . emit_err ( errors:: BodyInExtern {
432431 span : ident. span ,
433432 body,
434433 block : self . current_extern_span ( ) ,
@@ -441,7 +440,7 @@ impl<'a> AstValidator<'a> {
441440 let Some ( body) = body else {
442441 return ;
443442 } ;
444- self . err_handler ( ) . emit_err ( errors:: FnBodyInExtern {
443+ self . dcx ( ) . emit_err ( errors:: FnBodyInExtern {
445444 span : ident. span ,
446445 body : body. span ,
447446 block : self . current_extern_span ( ) ,
@@ -455,7 +454,7 @@ impl<'a> AstValidator<'a> {
455454 /// An `fn` in `extern { ... }` cannot have qualifiers, e.g. `async fn`.
456455 fn check_foreign_fn_headerless ( & self , ident : Ident , span : Span , header : FnHeader ) {
457456 if header. has_qualifiers ( ) {
458- self . err_handler ( ) . emit_err ( errors:: FnQualifierInExtern {
457+ self . dcx ( ) . emit_err ( errors:: FnQualifierInExtern {
459458 span : ident. span ,
460459 block : self . current_extern_span ( ) ,
461460 sugg_span : span. until ( ident. span . shrink_to_lo ( ) ) ,
@@ -466,7 +465,7 @@ impl<'a> AstValidator<'a> {
466465 /// An item in `extern { ... }` cannot use non-ascii identifier.
467466 fn check_foreign_item_ascii_only ( & self , ident : Ident ) {
468467 if !ident. as_str ( ) . is_ascii ( ) {
469- self . err_handler ( ) . emit_err ( errors:: ExternItemAscii {
468+ self . dcx ( ) . emit_err ( errors:: ExternItemAscii {
470469 span : ident. span ,
471470 block : self . current_extern_span ( ) ,
472471 } ) ;
@@ -495,7 +494,7 @@ impl<'a> AstValidator<'a> {
495494 if let Const :: Yes ( const_span) = header. constness {
496495 let mut spans = variadic_spans. clone ( ) ;
497496 spans. push ( const_span) ;
498- self . err_handler ( ) . emit_err ( errors:: ConstAndCVariadic {
497+ self . dcx ( ) . emit_err ( errors:: ConstAndCVariadic {
499498 spans,
500499 const_span,
501500 variadic_spans : variadic_spans. clone ( ) ,
@@ -517,14 +516,14 @@ impl<'a> AstValidator<'a> {
517516 _ => { }
518517 } ;
519518
520- self . err_handler ( ) . emit_err ( errors:: BadCVariadic { span : variadic_spans } ) ;
519+ self . dcx ( ) . emit_err ( errors:: BadCVariadic { span : variadic_spans } ) ;
521520 }
522521
523522 fn check_item_named ( & self , ident : Ident , kind : & str ) {
524523 if ident. name != kw:: Underscore {
525524 return ;
526525 }
527- self . err_handler ( ) . emit_err ( errors:: ItemUnderscore { span : ident. span , kind } ) ;
526+ self . dcx ( ) . emit_err ( errors:: ItemUnderscore { span : ident. span , kind } ) ;
528527 }
529528
530529 fn check_nomangle_item_asciionly ( & self , ident : Ident , item_span : Span ) {
@@ -615,7 +614,7 @@ impl<'a> AstValidator<'a> {
615614 let args_len = arg_spans. len ( ) ;
616615 let constraint_len = constraint_spans. len ( ) ;
617616 // ...and then error:
618- self . err_handler ( ) . emit_err ( errors:: ArgsBeforeConstraint {
617+ self . dcx ( ) . emit_err ( errors:: ArgsBeforeConstraint {
619618 arg_spans : arg_spans. clone ( ) ,
620619 constraints : constraint_spans[ 0 ] ,
621620 args : * arg_spans. iter ( ) . last ( ) . unwrap ( ) ,
@@ -667,7 +666,7 @@ impl<'a> AstValidator<'a> {
667666 }
668667
669668 if !bounds. iter ( ) . any ( |b| matches ! ( b, GenericBound :: Trait ( ..) ) ) {
670- self . err_handler ( ) . emit_err ( errors:: AtLeastOneTrait { span : ty. span } ) ;
669+ self . dcx ( ) . emit_err ( errors:: AtLeastOneTrait { span : ty. span } ) ;
671670 }
672671 }
673672 _ => { }
@@ -697,7 +696,7 @@ impl<'a> AstValidator<'a> {
697696/// Checks that generic parameters are in the correct order,
698697/// which is lifetimes, then types and then consts. (`<'a, T, const N: usize>`)
699698fn validate_generic_param_order (
700- handler : & rustc_errors:: Handler ,
699+ dcx : & rustc_errors:: DiagCtxt ,
701700 generics : & [ GenericParam ] ,
702701 span : Span ,
703702) {
@@ -760,7 +759,7 @@ fn validate_generic_param_order(
760759 ordered_params += ">" ;
761760
762761 for ( param_ord, ( max_param, spans) ) in & out_of_order {
763- handler . emit_err ( errors:: OutOfOrderParams {
762+ dcx . emit_err ( errors:: OutOfOrderParams {
764763 spans : spans. clone ( ) ,
765764 sugg_span : span,
766765 param_ord,
@@ -823,7 +822,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
823822 errors:: VisibilityNotPermittedNote :: TraitImpl ,
824823 ) ;
825824 if let TyKind :: Err = self_ty. kind {
826- this. err_handler ( ) . emit_err ( errors:: ObsoleteAuto { span : item. span } ) ;
825+ this. dcx ( ) . emit_err ( errors:: ObsoleteAuto { span : item. span } ) ;
827826 }
828827 if let ( & Unsafe :: Yes ( span) , & ImplPolarity :: Negative ( sp) ) = ( unsafety, polarity)
829828 {
@@ -871,21 +870,21 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
871870 errors:: VisibilityNotPermittedNote :: IndividualImplItems ,
872871 ) ;
873872 if let & Unsafe :: Yes ( span) = unsafety {
874- self . err_handler ( ) . emit_err ( errors:: InherentImplCannotUnsafe {
873+ self . dcx ( ) . emit_err ( errors:: InherentImplCannotUnsafe {
875874 span : self_ty. span ,
876875 annotation_span : span,
877876 annotation : "unsafe" ,
878877 self_ty : self_ty. span ,
879878 } ) ;
880879 }
881880 if let & ImplPolarity :: Negative ( span) = polarity {
882- self . err_handler ( ) . emit_err ( error ( span, "negative" , false ) ) ;
881+ self . dcx ( ) . emit_err ( error ( span, "negative" , false ) ) ;
883882 }
884883 if let & Defaultness :: Default ( def_span) = defaultness {
885- self . err_handler ( ) . emit_err ( error ( def_span, "`default`" , true ) ) ;
884+ self . dcx ( ) . emit_err ( error ( def_span, "`default`" , true ) ) ;
886885 }
887886 if let & Const :: Yes ( span) = constness {
888- self . err_handler ( ) . emit_err ( error ( span, "`const`" , true ) ) ;
887+ self . dcx ( ) . emit_err ( error ( span, "`const`" , true ) ) ;
889888 }
890889
891890 self . visit_vis ( & item. vis ) ;
@@ -937,7 +936,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
937936 errors:: VisibilityNotPermittedNote :: IndividualForeignItems ,
938937 ) ;
939938 if let & Unsafe :: Yes ( span) = unsafety {
940- self . err_handler ( ) . emit_err ( errors:: UnsafeItem { span, kind : "extern block" } ) ;
939+ self . dcx ( ) . emit_err ( errors:: UnsafeItem { span, kind : "extern block" } ) ;
941940 }
942941 if abi. is_none ( ) {
943942 self . maybe_lint_missing_abi ( item. span , item. id ) ;
@@ -988,7 +987,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
988987 }
989988 ItemKind :: Mod ( unsafety, mod_kind) => {
990989 if let & Unsafe :: Yes ( span) = unsafety {
991- self . err_handler ( ) . emit_err ( errors:: UnsafeItem { span, kind : "module" } ) ;
990+ self . dcx ( ) . emit_err ( errors:: UnsafeItem { span, kind : "module" } ) ;
992991 }
993992 // Ensure that `path` attributes on modules are recorded as used (cf. issue #35584).
994993 if !matches ! ( mod_kind, ModKind :: Loaded ( _, Inline :: Yes , _) )
@@ -1011,7 +1010,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
10111010 } ,
10121011 ItemKind :: Union ( vdata, generics) => {
10131012 if vdata. fields ( ) . is_empty ( ) {
1014- self . err_handler ( ) . emit_err ( errors:: FieldlessUnion { span : item. span } ) ;
1013+ self . dcx ( ) . emit_err ( errors:: FieldlessUnion { span : item. span } ) ;
10151014 }
10161015 match vdata {
10171016 VariantData :: Struct ( fields, ..) => {
@@ -1053,10 +1052,10 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
10531052
10541053 if self . features . lazy_type_alias {
10551054 if let Err ( err) = self . check_type_alias_where_clause_location ( ty_alias) {
1056- self . err_handler ( ) . emit_err ( err) ;
1055+ self . dcx ( ) . emit_err ( err) ;
10571056 }
10581057 } else if where_clauses. 1 . 0 {
1059- self . err_handler ( ) . emit_err ( errors:: WhereClauseAfterTypeAlias {
1058+ self . dcx ( ) . emit_err ( errors:: WhereClauseAfterTypeAlias {
10601059 span : where_clauses. 1 . 1 ,
10611060 help : self . session . is_nightly_build ( ) . then_some ( ( ) ) ,
10621061 } ) ;
@@ -1141,14 +1140,14 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11411140 }
11421141 GenericParamKind :: Type { .. } | GenericParamKind :: Const { .. } => {
11431142 if let Some ( span) = prev_param_default {
1144- self . err_handler ( ) . emit_err ( errors:: GenericDefaultTrailing { span } ) ;
1143+ self . dcx ( ) . emit_err ( errors:: GenericDefaultTrailing { span } ) ;
11451144 break ;
11461145 }
11471146 }
11481147 }
11491148 }
11501149
1151- validate_generic_param_order ( self . err_handler ( ) , & generics. params , generics. span ) ;
1150+ validate_generic_param_order ( self . dcx ( ) , & generics. params , generics. span ) ;
11521151
11531152 for predicate in & generics. where_clause . predicates {
11541153 if let WherePredicate :: EqPredicate ( predicate) = predicate {
@@ -1169,7 +1168,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11691168 match bound {
11701169 GenericBound :: Trait ( t, _) => {
11711170 if !t. bound_generic_params . is_empty ( ) {
1172- self . err_handler ( )
1171+ self . dcx ( )
11731172 . emit_err ( errors:: NestedLifetimes { span : t. span } ) ;
11741173 }
11751174 }
@@ -1195,13 +1194,13 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11951194 if let GenericBound :: Trait ( poly, modify) = bound {
11961195 match ( ctxt, modify) {
11971196 ( BoundKind :: SuperTraits , TraitBoundModifier :: Maybe ) => {
1198- self . err_handler ( ) . emit_err ( errors:: OptionalTraitSupertrait {
1197+ self . dcx ( ) . emit_err ( errors:: OptionalTraitSupertrait {
11991198 span : poly. span ,
12001199 path_str : pprust:: path_to_string ( & poly. trait_ref . path ) ,
12011200 } ) ;
12021201 }
12031202 ( BoundKind :: TraitObject , TraitBoundModifier :: Maybe ) => {
1204- self . err_handler ( ) . emit_err ( errors:: OptionalTraitObject { span : poly. span } ) ;
1203+ self . dcx ( ) . emit_err ( errors:: OptionalTraitObject { span : poly. span } ) ;
12051204 }
12061205 ( _, & TraitBoundModifier :: MaybeConst ( span) )
12071206 if let Some ( reason) = & self . disallow_tilde_const =>
@@ -1224,16 +1223,16 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
12241223 }
12251224 DisallowTildeConstContext :: Item => errors:: TildeConstReason :: Item ,
12261225 } ;
1227- self . err_handler ( ) . emit_err ( errors:: TildeConstDisallowed { span, reason } ) ;
1226+ self . dcx ( ) . emit_err ( errors:: TildeConstDisallowed { span, reason } ) ;
12281227 }
12291228 ( _, TraitBoundModifier :: MaybeConstMaybe ) => {
1230- self . err_handler ( ) . emit_err ( errors:: OptionalConstExclusive {
1229+ self . dcx ( ) . emit_err ( errors:: OptionalConstExclusive {
12311230 span : bound. span ( ) ,
12321231 modifier : "?" ,
12331232 } ) ;
12341233 }
12351234 ( _, TraitBoundModifier :: MaybeConstNegative ) => {
1236- self . err_handler ( ) . emit_err ( errors:: OptionalConstExclusive {
1235+ self . dcx ( ) . emit_err ( errors:: OptionalConstExclusive {
12371236 span : bound. span ( ) ,
12381237 modifier : "!" ,
12391238 } ) ;
@@ -1249,7 +1248,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
12491248 {
12501249 for arg in & args. args {
12511250 if let ast:: AngleBracketedArg :: Constraint ( constraint) = arg {
1252- self . err_handler ( )
1251+ self . dcx ( )
12531252 . emit_err ( errors:: ConstraintOnNegativeBound { span : constraint. span } ) ;
12541253 }
12551254 }
@@ -1281,7 +1280,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
12811280 | CoroutineKind :: AsyncGen { span : aspan, .. } => aspan,
12821281 } ;
12831282 // FIXME(gen_blocks): Report a different error for `const gen`
1284- self . err_handler ( ) . emit_err ( errors:: ConstAndAsync {
1283+ self . dcx ( ) . emit_err ( errors:: ConstAndAsync {
12851284 spans : vec ! [ cspan, aspan] ,
12861285 cspan,
12871286 aspan,
@@ -1321,10 +1320,8 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
13211320 }
13221321 } else {
13231322 match ctxt {
1324- FnCtxt :: Foreign => {
1325- self . err_handler ( ) . emit_err ( errors:: PatternInForeign { span } )
1326- }
1327- _ => self . err_handler ( ) . emit_err ( errors:: PatternInBodiless { span } ) ,
1323+ FnCtxt :: Foreign => self . dcx ( ) . emit_err ( errors:: PatternInForeign { span } ) ,
1324+ _ => self . dcx ( ) . emit_err ( errors:: PatternInBodiless { span } ) ,
13281325 } ;
13291326 }
13301327 } ) ;
@@ -1523,7 +1520,7 @@ fn deny_equality_constraints(
15231520 }
15241521 }
15251522 }
1526- this. err_handler ( ) . emit_err ( err) ;
1523+ this. dcx ( ) . emit_err ( err) ;
15271524}
15281525
15291526pub fn check_crate (
0 commit comments