@@ -395,27 +395,23 @@ fn never_type_behavior(tcx: TyCtxt<'_>) -> (DivergingFallbackBehavior, Diverging
395395
396396/// Returns the default fallback which is used when there is no explicit override via `#![never_type_options(...)]`.
397397fn default_fallback ( tcx : TyCtxt < ' _ > ) -> DivergingFallbackBehavior {
398- use DivergingFallbackBehavior :: * ;
399-
400398 // Edition 2024: fallback to `!`
401399 if tcx. sess . edition ( ) . at_least_rust_2024 ( ) {
402- return FallbackToNever ;
400+ return DivergingFallbackBehavior :: ToNever ;
403401 }
404402
405403 // `feature(never_type_fallback)`: fallback to `!` or `()` trying to not break stuff
406404 if tcx. features ( ) . never_type_fallback {
407- return FallbackToNiko ;
405+ return DivergingFallbackBehavior :: ContextDependent ;
408406 }
409407
410408 // Otherwise: fallback to `()`
411- FallbackToUnit
409+ DivergingFallbackBehavior :: ToUnit
412410}
413411
414412fn parse_never_type_options_attr (
415413 tcx : TyCtxt < ' _ > ,
416414) -> ( Option < DivergingFallbackBehavior > , Option < DivergingBlockBehavior > ) {
417- use DivergingFallbackBehavior :: * ;
418-
419415 // Error handling is dubious here (unwraps), but that's probably fine for an internal attribute.
420416 // Just don't write incorrect attributes <3
421417
@@ -431,10 +427,10 @@ fn parse_never_type_options_attr(
431427 if item. has_name ( sym:: fallback) && fallback. is_none ( ) {
432428 let mode = item. value_str ( ) . unwrap ( ) ;
433429 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 ) ,
438434 _ => {
439435 tcx. dcx ( ) . span_err ( item. span ( ) , format ! ( "unknown never type fallback mode: `{mode}` (supported: `unit`, `niko`, `never` and `no`)" ) ) ;
440436 }
0 commit comments