File tree Expand file tree Collapse file tree 1 file changed +15
-19
lines changed Expand file tree Collapse file tree 1 file changed +15
-19
lines changed Original file line number Diff line number Diff line change @@ -126,31 +126,27 @@ impl fmt::Display for Location {
126
126
}
127
127
}
128
128
129
- fn rustfmt_executable ( sh : & Shell ) -> & str {
130
- // First try explicitly requesting the stable channel via rustup in case nightly is being used by default,
131
- // then plain rustfmt in case rustup isn't being used to manage the compiler (e.g. when using Nix).
132
- for executable in [ "rustup run stable rustfmt" , "rustfmt" ] {
133
- let version = cmd ! ( sh, "{executable} --version" ) . read ( ) . unwrap_or_default ( ) ;
134
- if version. contains ( "stable" ) {
135
- return executable;
136
- }
137
- }
138
-
139
- panic ! (
140
- "Failed to run rustfmt from toolchain 'stable'. \
129
+ fn ensure_rustfmt ( sh : & Shell ) {
130
+ let version = cmd ! ( sh, "rustup run stable rustfmt --version" ) . read ( ) . unwrap_or_default ( ) ;
131
+ if !version. contains ( "stable" ) {
132
+ panic ! (
133
+ "Failed to run rustfmt from toolchain 'stable'. \
141
134
Please run `rustup component add rustfmt --toolchain stable` to install it.",
142
- ) ;
135
+ ) ;
136
+ }
143
137
}
144
138
145
139
fn reformat ( text : String ) -> String {
146
140
let sh = Shell :: new ( ) . unwrap ( ) ;
147
- let rustfmt_exe = rustfmt_executable ( & sh) ;
141
+ ensure_rustfmt ( & sh) ;
148
142
let rustfmt_toml = project_root ( ) . join ( "rustfmt.toml" ) ;
149
- let mut stdout =
150
- cmd ! ( sh, "{rustfmt_exe} --config-path {rustfmt_toml} --config fn_single_line=true" )
151
- . stdin ( text)
152
- . read ( )
153
- . unwrap ( ) ;
143
+ let mut stdout = cmd ! (
144
+ sh,
145
+ "rustup run stable rustfmt --config-path {rustfmt_toml} --config fn_single_line=true"
146
+ )
147
+ . stdin ( text)
148
+ . read ( )
149
+ . unwrap ( ) ;
154
150
if !stdout. ends_with ( '\n' ) {
155
151
stdout. push ( '\n' ) ;
156
152
}
You can’t perform that action at this time.
0 commit comments