File tree 1 file changed +7
-6
lines changed
1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -1135,13 +1135,14 @@ 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
+ Version :: parse ( version) . ok ( )
1144
1145
} ;
1145
-
1146
- Ok ( parse ( cmd . output ( ) ? . stdout ) . expect ( " rustc --version parsing failed" ) )
1146
+ Ok ( parse ( & stdout )
1147
+ . unwrap_or_else ( || panic ! ( "failed parsing ` rustc --version` output `{}`" , stdout ) ) )
1147
1148
}
You can’t perform that action at this time.
0 commit comments