@@ -324,7 +324,9 @@ impl<'a, 'tcx> CastCheck<'tcx> {
324
324
CastError :: CastToBool => {
325
325
let expr_ty = fcx. resolve_vars_if_possible ( self . expr_ty ) ;
326
326
let help = if self . expr_ty . is_numeric ( ) {
327
- errors:: CannotCastToBoolHelp :: Numeric ( self . expr_span . shrink_to_hi ( ) . with_hi ( self . span . hi ( ) ) )
327
+ errors:: CannotCastToBoolHelp :: Numeric (
328
+ self . expr_span . shrink_to_hi ( ) . with_hi ( self . span . hi ( ) ) ,
329
+ )
328
330
} else {
329
331
errors:: CannotCastToBoolHelp :: Unsupported ( self . span )
330
332
} ;
@@ -517,33 +519,20 @@ impl<'a, 'tcx> CastCheck<'tcx> {
517
519
. emit ( ) ;
518
520
}
519
521
CastError :: IntToFatCast ( known_metadata) => {
520
- let mut err = struct_span_err ! (
521
- fcx. tcx. sess,
522
- self . cast_span,
523
- E0606 ,
524
- "cannot cast `{}` to a pointer that {} wide" ,
525
- fcx. ty_to_string( self . expr_ty) ,
526
- if known_metadata. is_some( ) { "is" } else { "may be" }
527
- ) ;
528
-
529
- err. span_label (
530
- self . cast_span ,
531
- format ! (
532
- "creating a `{}` requires both an address and {}" ,
533
- self . cast_ty,
534
- known_metadata. unwrap_or( "type-specific metadata" ) ,
535
- ) ,
536
- ) ;
537
-
538
- if fcx. tcx . sess . is_nightly_build ( ) {
539
- err. span_label (
540
- self . expr_span ,
541
- "consider casting this expression to `*const ()`, \
542
- then using `core::ptr::from_raw_parts`",
543
- ) ;
544
- }
545
-
546
- err. emit ( ) ;
522
+ let expr_if_nightly = fcx. tcx . sess . is_nightly_build ( ) . then_some ( self . expr_span ) ;
523
+ let cast_ty = fcx. resolve_vars_if_possible ( self . cast_ty ) ;
524
+ let expr_ty = fcx. ty_to_string ( self . expr_ty ) ;
525
+ let metadata = known_metadata. unwrap_or ( "type-specific metadata" ) ;
526
+ let known_wide = known_metadata. is_some ( ) ;
527
+ let span = self . cast_span ;
528
+ fcx. tcx . sess . emit_err ( errors:: IntToWide {
529
+ span,
530
+ metadata,
531
+ expr_ty,
532
+ cast_ty,
533
+ expr_if_nightly,
534
+ known_wide,
535
+ } ) ;
547
536
}
548
537
CastError :: UnknownCastPtrKind | CastError :: UnknownExprPtrKind => {
549
538
let unknown_cast_to = match e {
0 commit comments