@@ -536,7 +536,14 @@ impl From<StyleEdition> for rustc_span::edition::Edition {
536
536
537
537
impl PartialOrd for StyleEdition {
538
538
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
+ }
540
547
}
541
548
}
542
549
@@ -684,3 +691,41 @@ config_option_with_style_edition_default!(
684
691
MakeBackup , bool , _ => false ;
685
692
PrintMisformattedFileNames , bool , _ => false ;
686
693
) ;
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