mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 04:53:34 +00:00
Merge #9936
9936: proc_macro_api: make commit & date suffix of binary version optional r=lnicola a=lnicola Closes #9916 bors r+ Co-authored-by: Florian sp1rit <sp1ritCS@protonmail.com> Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
This commit is contained in:
commit
d1ba993136
1 changed files with 20 additions and 14 deletions
|
@ -14,8 +14,8 @@ use snap::read::FrameDecoder as SnapDecoder;
|
|||
pub struct RustCInfo {
|
||||
pub version: (usize, usize, usize),
|
||||
pub channel: String,
|
||||
pub commit: String,
|
||||
pub date: String,
|
||||
pub commit: Option<String>,
|
||||
pub date: Option<String>,
|
||||
}
|
||||
|
||||
/// Read rustc dylib information
|
||||
|
@ -38,18 +38,24 @@ pub fn read_dylib_info(dylib_path: &AbsPath) -> io::Result<RustCInfo> {
|
|||
let version = version_parts.next().ok_or_else(|| err!("no version"))?;
|
||||
let channel = version_parts.next().unwrap_or_default().to_string();
|
||||
|
||||
let commit = items.next().ok_or_else(|| err!("no commit info"))?;
|
||||
// remove (
|
||||
if commit.len() == 0 {
|
||||
return Err(err!("commit format error"));
|
||||
}
|
||||
let commit = commit[1..].to_string();
|
||||
let date = items.next().ok_or_else(|| err!("no date info"))?;
|
||||
// remove )
|
||||
if date.len() == 0 {
|
||||
return Err(err!("date format error"));
|
||||
}
|
||||
let date = date[0..date.len() - 2].to_string();
|
||||
let commit = match items.next() {
|
||||
Some(commit) => {
|
||||
match commit.len() {
|
||||
0 => None,
|
||||
_ => Some(commit[1..].to_string() /* remove ( */),
|
||||
}
|
||||
}
|
||||
None => None,
|
||||
};
|
||||
let date = match items.next() {
|
||||
Some(date) => {
|
||||
match date.len() {
|
||||
0 => None,
|
||||
_ => Some(date[0..date.len() - 2].to_string() /* remove ) */),
|
||||
}
|
||||
}
|
||||
None => None,
|
||||
};
|
||||
|
||||
let version_numbers = version
|
||||
.split('.')
|
||||
|
|
Loading…
Reference in a new issue