@@ -390,27 +390,23 @@ fn never_type_behavior(tcx: TyCtxt<'_>) -> (DivergingFallbackBehavior, Diverging
390
390
391
391
/// Returns the default fallback which is used when there is no explicit override via `#![never_type_options(...)]`.
392
392
fn default_fallback ( tcx : TyCtxt < ' _ > ) -> DivergingFallbackBehavior {
393
- use DivergingFallbackBehavior :: * ;
394
-
395
393
// Edition 2024: fallback to `!`
396
394
if tcx. sess . edition ( ) . at_least_rust_2024 ( ) {
397
- return FallbackToNever ;
395
+ return DivergingFallbackBehavior :: ToNever ;
398
396
}
399
397
400
398
// `feature(never_type_fallback)`: fallback to `!` or `()` trying to not break stuff
401
399
if tcx. features ( ) . never_type_fallback {
402
- return FallbackToNiko ;
400
+ return DivergingFallbackBehavior :: ContextDependent ;
403
401
}
404
402
405
403
// Otherwise: fallback to `()`
406
- FallbackToUnit
404
+ DivergingFallbackBehavior :: ToUnit
407
405
}
408
406
409
407
fn parse_never_type_options_attr (
410
408
tcx : TyCtxt < ' _ > ,
411
409
) -> ( Option < DivergingFallbackBehavior > , Option < DivergingBlockBehavior > ) {
412
- use DivergingFallbackBehavior :: * ;
413
-
414
410
// Error handling is dubious here (unwraps), but that's probably fine for an internal attribute.
415
411
// Just don't write incorrect attributes <3
416
412
@@ -426,10 +422,10 @@ fn parse_never_type_options_attr(
426
422
if item. has_name ( sym:: fallback) && fallback. is_none ( ) {
427
423
let mode = item. value_str ( ) . unwrap ( ) ;
428
424
match mode {
429
- sym:: unit => fallback = Some ( FallbackToUnit ) ,
430
- sym:: niko => fallback = Some ( FallbackToNiko ) ,
431
- sym:: never => fallback = Some ( FallbackToNever ) ,
432
- sym:: no => fallback = Some ( NoFallback ) ,
425
+ sym:: unit => fallback = Some ( DivergingFallbackBehavior :: ToUnit ) ,
426
+ sym:: niko => fallback = Some ( DivergingFallbackBehavior :: ContextDependent ) ,
427
+ sym:: never => fallback = Some ( DivergingFallbackBehavior :: ToNever ) ,
428
+ sym:: no => fallback = Some ( DivergingFallbackBehavior :: NoFallback ) ,
433
429
_ => {
434
430
tcx. dcx ( ) . span_err ( item. span ( ) , format ! ( "unknown never type fallback mode: `{mode}` (supported: `unit`, `niko`, `never` and `no`)" ) ) ;
435
431
}
0 commit comments