File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed
Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 1+ # Rustfmt: raw identifier sorting
2+
3+ 🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+ More information may be found in < https://github.com/rust-lang/rust/issues/124764 > .
6+
7+ ## Summary
8+
9+ ` rustfmt ` now properly sorts [ raw identifiers] .
10+
11+ [ raw identifiers ] : https://doc.rust-lang.org/rust-by-example/compatibility/raw_identifiers.html
12+
13+ ## Details
14+
15+ The [ Rust Style Guide] includes [ rules for sorting] [ sorting ] that ` rustfmt ` applies in various contexts, such as on imports.
16+
17+ Prior to the 2024 Edition, when sorting rustfmt would use the leading ` r# ` token instead of the ident which led to specious results.
18+
19+ For example:
20+
21+ ``` rust
22+ use websocket :: client :: ClientBuilder ;
23+ use websocket :: r#async :: futures :: Stream ;
24+ use websocket :: result :: WebSocketError ;
25+ ```
26+
27+ Which is now corrected in the 2024 Edition:
28+
29+ ``` rust
30+ use websocket :: r#async :: futures :: Stream ;
31+ use websocket :: client :: ClientBuilder ;
32+ use websocket :: result :: WebSocketError ;
33+ ```
34+
35+ [ Rust Style Guide ] : https://doc.rust-lang.org/nightly/style-guide/index.html
36+ [ sorting ] : https://doc.rust-lang.org/stable/style-guide/index.html?highlight=sort#sorting
37+
38+ ## Migration
39+
40+ The change can be applied automatically by running ` cargo fmt ` or ` rustfmt ` with the 2024 Edition.
41+
42+ With a Cargo.toml file that has ` edition ` set to ` 2024 ` :
43+
44+ ``` sh
45+ cargo fmt
46+ ```
47+
48+ Or by running ` rustfmt ` directly:
49+
50+ ``` sh
51+ rustfmt foo.rs --style-edition 2024
52+ ```
You can’t perform that action at this time.
0 commit comments