File tree Expand file tree Collapse file tree 1 file changed +7
-6
lines changed Expand file tree Collapse file tree 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>
11351135 cmd. arg ( format ! ( "+{}" , toolchain) ) ;
11361136 }
11371137 cmd. arg ( "--version" ) ;
1138+ let output = cmd. output ( ) ?;
11381139
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 | {
11411142 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 ( )
11441145 } ;
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 ) ) )
11471148}
You can’t perform that action at this time.
0 commit comments