File tree 1 file changed +9
-6
lines changed 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -1135,13 +1135,16 @@ pub fn query_rustc_version(toolchain: Option<&str>) -> std::io::Result<Version>
1135
1135
cmd. arg ( format ! ( "+{}" , toolchain) ) ;
1136
1136
}
1137
1137
cmd. arg ( "--version" ) ;
1138
+ let output = cmd. output ( ) ?;
1138
1139
1139
- let parse = | stdout| {
1140
- let output = String :: from_utf8 ( stdout ) . ok ( ) ? ;
1140
+ let stdout = String :: from_utf8 ( output . stdout ) . expect ( "stdout must be utf-8" ) ;
1141
+ let parse = | output : & str | {
1141
1142
let output = output. strip_prefix ( "rustc " ) ?;
1142
- let version = & output[ ..output. find ( "-" ) ?] ;
1143
- Some ( Version :: parse ( version) . expect ( "invalid version" ) )
1143
+ let version = & output[ ..output. find ( |c| ! "0123456789." . contains ( c ) ) ?] ;
1144
+ Some ( Version :: parse ( version) . ok ( ) ? )
1144
1145
} ;
1145
-
1146
- Ok ( parse ( cmd. output ( ) ?. stdout ) . expect ( "rustc --version parsing failed" ) )
1146
+ Ok ( parse ( & stdout) . expect ( & format ! (
1147
+ "failed parsing `rustc --version` output `{}`" ,
1148
+ stdout
1149
+ ) ) )
1147
1150
}
You can’t perform that action at this time.
0 commit comments