Skip to content

Commit e79aafc

Browse files
committed
Rename DivergingFallbackBehavior variants and don't use ::*
1 parent 0f63cd1 commit e79aafc

File tree

2 files changed

+14
-19
lines changed

2 files changed

+14
-19
lines changed

compiler/rustc_hir_typeck/src/fallback.rs

+7-8
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ use rustc_span::{def_id::LocalDefId, Span};
1818
#[derive(Copy, Clone)]
1919
pub enum DivergingFallbackBehavior {
2020
/// Always fallback to `()` (aka "always spontaneous decay")
21-
FallbackToUnit,
21+
ToUnit,
2222
/// Sometimes fallback to `!`, but mainly fallback to `()` so that most of the crates are not broken.
23-
FallbackToNiko,
23+
ContextDependent,
2424
/// Always fallback to `!` (which should be equivalent to never falling back + not making
2525
/// never-to-any coercions unless necessary)
26-
FallbackToNever,
26+
ToNever,
2727
/// Don't fallback at all
2828
NoFallback,
2929
}
@@ -403,13 +403,12 @@ impl<'tcx> FnCtxt<'_, 'tcx> {
403403
diverging_fallback.insert(diverging_ty, ty);
404404
};
405405

406-
use DivergingFallbackBehavior::*;
407406
match behavior {
408-
FallbackToUnit => {
407+
DivergingFallbackBehavior::ToUnit => {
409408
debug!("fallback to () - legacy: {:?}", diverging_vid);
410409
fallback_to(self.tcx.types.unit);
411410
}
412-
FallbackToNiko => {
411+
DivergingFallbackBehavior::ContextDependent => {
413412
if found_infer_var_info.self_in_trait && found_infer_var_info.output {
414413
// This case falls back to () to ensure that the code pattern in
415414
// tests/ui/never_type/fallback-closure-ret.rs continues to
@@ -445,14 +444,14 @@ impl<'tcx> FnCtxt<'_, 'tcx> {
445444
fallback_to(self.tcx.types.never);
446445
}
447446
}
448-
FallbackToNever => {
447+
DivergingFallbackBehavior::ToNever => {
449448
debug!(
450449
"fallback to ! - `rustc_never_type_mode = \"fallback_to_never\")`: {:?}",
451450
diverging_vid
452451
);
453452
fallback_to(self.tcx.types.never);
454453
}
455-
NoFallback => {
454+
DivergingFallbackBehavior::NoFallback => {
456455
debug!(
457456
"no fallback - `rustc_never_type_mode = \"no_fallback\"`: {:?}",
458457
diverging_vid

compiler/rustc_hir_typeck/src/fn_ctxt/mod.rs

+7-11
Original file line numberDiff line numberDiff line change
@@ -390,27 +390,23 @@ fn never_type_behavior(tcx: TyCtxt<'_>) -> (DivergingFallbackBehavior, Diverging
390390

391391
/// Returns the default fallback which is used when there is no explicit override via `#![never_type_options(...)]`.
392392
fn default_fallback(tcx: TyCtxt<'_>) -> DivergingFallbackBehavior {
393-
use DivergingFallbackBehavior::*;
394-
395393
// Edition 2024: fallback to `!`
396394
if tcx.sess.edition().at_least_rust_2024() {
397-
return FallbackToNever;
395+
return DivergingFallbackBehavior::ToNever;
398396
}
399397

400398
// `feature(never_type_fallback)`: fallback to `!` or `()` trying to not break stuff
401399
if tcx.features().never_type_fallback {
402-
return FallbackToNiko;
400+
return DivergingFallbackBehavior::ContextDependent;
403401
}
404402

405403
// Otherwise: fallback to `()`
406-
FallbackToUnit
404+
DivergingFallbackBehavior::ToUnit
407405
}
408406

409407
fn parse_never_type_options_attr(
410408
tcx: TyCtxt<'_>,
411409
) -> (Option<DivergingFallbackBehavior>, Option<DivergingBlockBehavior>) {
412-
use DivergingFallbackBehavior::*;
413-
414410
// Error handling is dubious here (unwraps), but that's probably fine for an internal attribute.
415411
// Just don't write incorrect attributes <3
416412

@@ -426,10 +422,10 @@ fn parse_never_type_options_attr(
426422
if item.has_name(sym::fallback) && fallback.is_none() {
427423
let mode = item.value_str().unwrap();
428424
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),
433429
_ => {
434430
tcx.dcx().span_err(item.span(), format!("unknown never type fallback mode: `{mode}` (supported: `unit`, `niko`, `never` and `no`)"));
435431
}

0 commit comments

Comments
 (0)