@@ -21,6 +21,7 @@ use crate::lists::{
2121} ;
2222use crate :: rewrite:: { Rewrite , RewriteContext , RewriteErrorExt , RewriteResult } ;
2323use crate :: shape:: Shape ;
24+ use crate :: sort:: version_sort;
2425use crate :: source_map:: SpanUtils ;
2526use crate :: spanned:: Spanned ;
2627use crate :: utils:: { is_same_visibility, mk_sp, rewrite_ident} ;
@@ -923,7 +924,7 @@ impl Ord for UseSegment {
923924 | ( Crate ( ref a) , Crate ( ref b) ) => match ( a, b) {
924925 ( Some ( sa) , Some ( sb) ) => {
925926 if self . style_edition >= StyleEdition :: Edition2024 {
926- sa. trim_start_matches ( "r#" ) . cmp ( sb. trim_start_matches ( "r#" ) )
927+ version_sort ( sa. trim_start_matches ( "r#" ) , sb. trim_start_matches ( "r#" ) )
927928 } else {
928929 a. cmp ( b)
929930 }
@@ -937,20 +938,26 @@ impl Ord for UseSegment {
937938 } else {
938939 ( pia. as_str ( ) , pib. as_str ( ) )
939940 } ;
940- // snake_case < CamelCase < UPPER_SNAKE_CASE
941- if ia. starts_with ( char:: is_uppercase) && ib. starts_with ( char:: is_lowercase) {
942- return Ordering :: Greater ;
943- }
944- if ia. starts_with ( char:: is_lowercase) && ib. starts_with ( char:: is_uppercase) {
945- return Ordering :: Less ;
946- }
947- if is_upper_snake_case ( ia) && !is_upper_snake_case ( ib) {
948- return Ordering :: Greater ;
949- }
950- if !is_upper_snake_case ( ia) && is_upper_snake_case ( ib) {
951- return Ordering :: Less ;
952- }
953- let ident_ord = ia. cmp ( ib) ;
941+
942+ let ident_ord = if self . style_edition >= StyleEdition :: Edition2024 {
943+ version_sort ( ia, ib)
944+ } else {
945+ // snake_case < CamelCase < UPPER_SNAKE_CASE
946+ if ia. starts_with ( char:: is_uppercase) && ib. starts_with ( char:: is_lowercase) {
947+ return Ordering :: Greater ;
948+ }
949+ if ia. starts_with ( char:: is_lowercase) && ib. starts_with ( char:: is_uppercase) {
950+ return Ordering :: Less ;
951+ }
952+ if is_upper_snake_case ( ia) && !is_upper_snake_case ( ib) {
953+ return Ordering :: Greater ;
954+ }
955+ if !is_upper_snake_case ( ia) && is_upper_snake_case ( ib) {
956+ return Ordering :: Less ;
957+ }
958+ ia. cmp ( ib)
959+ } ;
960+
954961 if ident_ord != Ordering :: Equal {
955962 return ident_ord;
956963 }
@@ -959,8 +966,7 @@ impl Ord for UseSegment {
959966 ( Some ( _) , None ) => Ordering :: Greater ,
960967 ( Some ( aas) , Some ( abs) ) => {
961968 if self . style_edition >= StyleEdition :: Edition2024 {
962- aas. trim_start_matches ( "r#" )
963- . cmp ( abs. trim_start_matches ( "r#" ) )
969+ version_sort ( aas. trim_start_matches ( "r#" ) , abs. trim_start_matches ( "r#" ) )
964970 } else {
965971 aas. cmp ( abs)
966972 }
0 commit comments