Skip to content

Commit eca83df

Browse files
committed
compile_codegen: SpirvBuilder: fix query_rustc_version() for stable rustc versions
1 parent b8f659b commit eca83df

File tree

1 file changed

+7
-6
lines changed
  • crates/spirv-builder/src

1 file changed

+7
-6
lines changed

crates/spirv-builder/src/lib.rs

+7-6
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)