Skip to content

Commit

Permalink
update PartialOrd for StyleEdition::Edition2027
Browse files Browse the repository at this point in the history
This was missed when the `Edition2027` variant was added.
  • Loading branch information
ytmimi committed Oct 10, 2024
1 parent a2625bf commit ac8212c
Showing 1 changed file with 46 additions and 1 deletion.
47 changes: 46 additions & 1 deletion src/config/options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,14 @@ impl From<StyleEdition> for rustc_span::edition::Edition {

impl PartialOrd for StyleEdition {
fn partial_cmp(&self, other: &StyleEdition) -> Option<std::cmp::Ordering> {
rustc_span::edition::Edition::partial_cmp(&(*self).into(), &(*other).into())
// FIXME(ytmimi): Update the `StyleEdition::Edition2027` logic when the
// `Edition::Edition2027` becomes available in the compiler
match (self, other) {
(Self::Edition2027, Self::Edition2027) => Some(std::cmp::Ordering::Equal),
(_, Self::Edition2027) => Some(std::cmp::Ordering::Less),
(Self::Edition2027, _) => Some(std::cmp::Ordering::Greater),
_ => rustc_span::edition::Edition::partial_cmp(&(*self).into(), &(*other).into()),
}
}
}

Expand Down Expand Up @@ -684,3 +691,41 @@ config_option_with_style_edition_default!(
MakeBackup, bool, _ => false;
PrintMisformattedFileNames, bool, _ => false;
);

#[test]
fn style_edition_comparisons() {
// Style Edition 2015
assert!(StyleEdition::Edition2015 == StyleEdition::Edition2015);
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2018);
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2021);
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2024);
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2027);

// Style Edition 2018
assert!(StyleEdition::Edition2018 > StyleEdition::Edition2015);
assert!(StyleEdition::Edition2018 == StyleEdition::Edition2018);
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2021);
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2024);
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2027);

// Style Edition 2021
assert!(StyleEdition::Edition2021 > StyleEdition::Edition2015);
assert!(StyleEdition::Edition2021 > StyleEdition::Edition2018);
assert!(StyleEdition::Edition2021 == StyleEdition::Edition2021);
assert!(StyleEdition::Edition2021 < StyleEdition::Edition2024);
assert!(StyleEdition::Edition2021 < StyleEdition::Edition2027);

// Style Edition 2024
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2015);
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2018);
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2021);
assert!(StyleEdition::Edition2024 == StyleEdition::Edition2024);
assert!(StyleEdition::Edition2024 < StyleEdition::Edition2027);

// Style Edition 2024
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2015);
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2018);
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2021);
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2024);
assert!(StyleEdition::Edition2027 == StyleEdition::Edition2027);
}

0 comments on commit ac8212c

Please sign in to comment.