Skip to content

Commit 32df76c

Browse files
committed
fix: matches_prerelease should be only used on OptVersionReq::Req
1 parent 2c27615 commit 32df76c

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/cargo/util/semver_ext.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ impl OptVersionReq {
102102
pub fn is_locked(&self) -> bool {
103103
matches!(self, OptVersionReq::Locked(..))
104104
}
105-
106105
/// Gets the version to which this req is locked, if any.
107106
pub fn locked_version(&self) -> Option<&Version> {
108107
match self {
@@ -116,7 +115,7 @@ impl OptVersionReq {
116115
/// The logic here is temporary, we'll have to consider more boundary conditions later,
117116
/// and we're not sure if this part of the functionality should be implemented in semver or cargo.
118117
pub fn matches_prerelease(&self, version: &Version) -> bool {
119-
if version.is_prerelease() {
118+
if version.is_prerelease() && matches!(self, OptVersionReq::Req(_)) {
120119
let mut version = version.clone();
121120
version.pre = semver::Prerelease::EMPTY;
122121
return self.matches(&version);
@@ -251,9 +250,9 @@ mod matches_prerelease {
251250
assert!(req.matches_prerelease(&to_ver));
252251

253252
let req = OptVersionReq::Locked(to_ver.clone(), req_ver.clone());
254-
assert!(!req.matches_prerelease(&to_ver));
253+
assert!(req.matches_prerelease(&to_ver));
255254

256255
let req = OptVersionReq::Locked(to_ver.clone(), req_ver.clone());
257-
assert!(!req.matches_prerelease(&to_ver));
256+
assert!(req.matches_prerelease(&to_ver));
258257
}
259258
}

0 commit comments

Comments
 (0)