Skip to content

Commit 304d28c

Browse files
committed
update PartialOrd for StyleEdition::Edition2027
This was missed when the `Edition2027` variant was added.
1 parent 2d049af commit 304d28c

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

src/config/options.rs

+46-1
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,14 @@ impl From<StyleEdition> for rustc_span::edition::Edition {
536536

537537
impl PartialOrd for StyleEdition {
538538
fn partial_cmp(&self, other: &StyleEdition) -> Option<std::cmp::Ordering> {
539-
rustc_span::edition::Edition::partial_cmp(&(*self).into(), &(*other).into())
539+
// FIXME(ytmimi): Update the `StyleEdition::Edition2027` logic when the
540+
// `Edition::Edition2027` becomes available in the compiler
541+
match (self, other) {
542+
(Self::Edition2027, Self::Edition2027) => Some(std::cmp::Ordering::Equal),
543+
(_, Self::Edition2027) => Some(std::cmp::Ordering::Less),
544+
(Self::Edition2027, _) => Some(std::cmp::Ordering::Greater),
545+
_ => rustc_span::edition::Edition::partial_cmp(&(*self).into(), &(*other).into()),
546+
}
540547
}
541548
}
542549

@@ -684,3 +691,41 @@ config_option_with_style_edition_default!(
684691
MakeBackup, bool, _ => false;
685692
PrintMisformattedFileNames, bool, _ => false;
686693
);
694+
695+
#[test]
696+
fn style_edition_comparisons() {
697+
// Style Edition 2015
698+
assert!(StyleEdition::Edition2015 == StyleEdition::Edition2015);
699+
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2018);
700+
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2021);
701+
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2024);
702+
assert!(StyleEdition::Edition2015 < StyleEdition::Edition2027);
703+
704+
// Style Edition 2018
705+
assert!(StyleEdition::Edition2018 > StyleEdition::Edition2015);
706+
assert!(StyleEdition::Edition2018 == StyleEdition::Edition2018);
707+
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2021);
708+
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2024);
709+
assert!(StyleEdition::Edition2018 < StyleEdition::Edition2027);
710+
711+
// Style Edition 2021
712+
assert!(StyleEdition::Edition2021 > StyleEdition::Edition2015);
713+
assert!(StyleEdition::Edition2021 > StyleEdition::Edition2018);
714+
assert!(StyleEdition::Edition2021 == StyleEdition::Edition2021);
715+
assert!(StyleEdition::Edition2021 < StyleEdition::Edition2024);
716+
assert!(StyleEdition::Edition2021 < StyleEdition::Edition2027);
717+
718+
// Style Edition 2024
719+
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2015);
720+
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2018);
721+
assert!(StyleEdition::Edition2024 > StyleEdition::Edition2021);
722+
assert!(StyleEdition::Edition2024 == StyleEdition::Edition2024);
723+
assert!(StyleEdition::Edition2024 < StyleEdition::Edition2027);
724+
725+
// Style Edition 2024
726+
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2015);
727+
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2018);
728+
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2021);
729+
assert!(StyleEdition::Edition2027 > StyleEdition::Edition2024);
730+
assert!(StyleEdition::Edition2027 == StyleEdition::Edition2027);
731+
}

0 commit comments

Comments
 (0)