File tree Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Expand file tree Collapse file tree 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>
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+ Some ( Version :: parse ( version) . ok ( ) ? )
11441145 } ;
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+ ) ) )
11471150}
You can’t perform that action at this time.
0 commit comments