@@ -61,7 +61,6 @@ use std::process::Command;
61
61
use std:: { env, error, fmt, io, num, str} ;
62
62
use std:: { ffi:: OsString , str:: FromStr } ;
63
63
64
- use semver:: { self , Identifier } ;
65
64
// Convenience re-export to allow version comparison without needing to add
66
65
// semver crate.
67
66
pub use semver:: Version ;
@@ -231,12 +230,12 @@ pub fn version_meta_for(verbose_version_string: &str) -> Result<VersionMeta> {
231
230
let release = expect_key ( "release" , & map) ?;
232
231
let semver: Version = release. parse ( ) ?;
233
232
234
- let channel = match semver. pre . first ( ) {
235
- None => Channel :: Stable ,
236
- Some ( Identifier :: AlphaNumeric ( s ) ) if s == "dev" => Channel :: Dev ,
237
- Some ( Identifier :: AlphaNumeric ( s ) ) if s == "beta" => Channel :: Beta ,
238
- Some ( Identifier :: AlphaNumeric ( s ) ) if s == "nightly" => Channel :: Nightly ,
239
- Some ( x ) => return Err ( Error :: UnknownPreReleaseTag ( x. clone ( ) ) ) ,
233
+ let channel = match semver. pre . split ( '.' ) . next ( ) . unwrap ( ) {
234
+ "" => Channel :: Stable ,
235
+ "dev" => Channel :: Dev ,
236
+ "beta" => Channel :: Beta ,
237
+ "nightly" => Channel :: Nightly ,
238
+ x => return Err ( Error :: UnknownPreReleaseTag ( x. to_owned ( ) ) ) ,
240
239
} ;
241
240
242
241
let commit_hash = expect_key_or_unknown ( "commit-hash" , & map) ?;
@@ -353,12 +352,10 @@ pub enum Error {
353
352
Utf8Error ( str:: Utf8Error ) ,
354
353
/// The output of `rustc -vV` was not in the expected format.
355
354
UnexpectedVersionFormat ,
356
- /// An error occurred in parsing a `VersionReq`.
357
- ReqParseError ( semver:: ReqParseError ) ,
358
355
/// An error occurred in parsing the semver.
359
- SemVerError ( semver:: SemVerError ) ,
356
+ SemVerError ( semver:: Error ) ,
360
357
/// The pre-release tag is unknown.
361
- UnknownPreReleaseTag ( Identifier ) ,
358
+ UnknownPreReleaseTag ( String ) ,
362
359
/// An error occurred in parsing a `LlvmVersion`.
363
360
LlvmVersionError ( LlvmVersionParseError ) ,
364
361
}
@@ -377,7 +374,6 @@ impl fmt::Display for Error {
377
374
) ,
378
375
Utf8Error ( _) => write ! ( f, "invalid UTF-8 output from `rustc -vV`" ) ,
379
376
UnexpectedVersionFormat => write ! ( f, "unexpected `rustc -vV` format" ) ,
380
- ReqParseError ( ref e) => write ! ( f, "error parsing version requirement: {}" , e) ,
381
377
SemVerError ( ref e) => write ! ( f, "error parsing version: {}" , e) ,
382
378
UnknownPreReleaseTag ( ref i) => write ! ( f, "unknown pre-release tag: {}" , i) ,
383
379
LlvmVersionError ( ref e) => write ! ( f, "error parsing LLVM's version: {}" , e) ,
@@ -392,7 +388,6 @@ impl error::Error for Error {
392
388
CommandError { .. } => None ,
393
389
Utf8Error ( ref e) => Some ( e) ,
394
390
UnexpectedVersionFormat => None ,
395
- ReqParseError ( ref e) => Some ( e) ,
396
391
SemVerError ( ref e) => Some ( e) ,
397
392
UnknownPreReleaseTag ( _) => None ,
398
393
LlvmVersionError ( ref e) => Some ( e) ,
@@ -414,8 +409,7 @@ macro_rules! impl_from {
414
409
415
410
impl_from ! {
416
411
str :: Utf8Error => Utf8Error ,
417
- semver:: SemVerError => SemVerError ,
418
- semver:: ReqParseError => ReqParseError ,
412
+ semver:: Error => SemVerError ,
419
413
LlvmVersionParseError => LlvmVersionError ,
420
414
}
421
415
0 commit comments