Skip to content

Commit 80cb14d

Browse files
committed
Fix dtolnay#124: ^0.11.0-rc.2 should not match 0.11.0
1 parent 123bf71 commit 80cb14d

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/version_req.rs

+12-7
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ impl Predicate {
468468
}
469469

470470
fn pre_is_compatible(&self, ver: &Version) -> bool {
471-
ver.pre.is_empty() || ver.pre >= self.pre
471+
ver.pre >= self.pre
472472
}
473473

474474
// see https://www.npmjs.org/doc/misc/semver.html for behavior
@@ -585,13 +585,13 @@ mod test {
585585

586586
fn assert_match(req: &VersionReq, vers: &[&str]) {
587587
for ver in vers.iter() {
588-
assert!(req.matches(&version(*ver)), "did not match {}", ver);
588+
assert!(req.matches(&version(*ver)), "{} did not match {}", req, ver);
589589
}
590590
}
591591

592592
fn assert_not_match(req: &VersionReq, vers: &[&str]) {
593593
for ver in vers.iter() {
594-
assert!(!req.matches(&version(*ver)), "matched {}", ver);
594+
assert!(!req.matches(&version(*ver)), "{} matched {}", req, ver);
595595
}
596596
}
597597

@@ -747,8 +747,8 @@ mod test {
747747
assert_not_match(&r, &["1.2.1", "1.9.0", "1.0.9", "2.0.1", "0.1.3"]);
748748

749749
let r = req("~1.2.3-beta.2");
750-
assert_match(&r, &["1.2.3", "1.2.4", "1.2.3-beta.2", "1.2.3-beta.4"]);
751-
assert_not_match(&r, &["1.3.3", "1.1.4", "1.2.3-beta.1", "1.2.4-beta.2"]);
750+
assert_match(&r, &["1.2.4", "1.2.3-beta.2", "1.2.3-beta.4"]);
751+
assert_not_match(&r, &["1.2.3", "1.3.3", "1.1.4", "1.2.3-beta.1", "1.2.4-beta.2"]);
752752
}
753753

754754
#[test]
@@ -779,13 +779,13 @@ mod test {
779779
"0.5.1-alpha3",
780780
"0.5.1-alpha4",
781781
"0.5.1-beta",
782-
"0.5.1",
783782
"0.5.5",
784783
],
785784
);
786785
assert_not_match(
787786
&r,
788787
&[
788+
"0.5.1",
789789
"0.5.1-alpha1",
790790
"0.5.2-alpha3",
791791
"0.5.5-pre",
@@ -809,18 +809,23 @@ mod test {
809809
let r = req("^1.4.2-beta.5");
810810
assert_match(
811811
&r,
812-
&["1.4.2", "1.4.3", "1.4.2-beta.5", "1.4.2-beta.6", "1.4.2-c"],
812+
&["1.4.3", "1.4.2-beta.5", "1.4.2-beta.6", "1.4.2-c"],
813813
);
814814
assert_not_match(
815815
&r,
816816
&[
817+
"1.4.2",
817818
"0.9.9",
818819
"2.0.0",
819820
"1.4.2-alpha",
820821
"1.4.2-beta.4",
821822
"1.4.3-beta.5",
822823
],
823824
);
825+
826+
let r = req("0.11.0-rc.2");
827+
assert_match(&r, &["0.11.0-rc.2", "0.11.0-rc.3", "0.11.0-rd", "0.11.1"]);
828+
assert_not_match(&r, &["0.11.0", "0.11.0-rc.1", "0.11.0-ra", "0.12.0"]);
824829
}
825830

826831
#[test]

0 commit comments

Comments
 (0)