@@ -536,7 +536,14 @@ impl From<StyleEdition> for rustc_span::edition::Edition {
536536
537537impl 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