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