Skip to content

Commit 378502b

Browse files
committed
refactor: Try to make PackageId conversion clearer
1 parent 9787229 commit 378502b

File tree

8 files changed

+23
-22
lines changed

8 files changed

+23
-22
lines changed

crates/resolver-tests/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,14 +419,14 @@ impl ToPkgId for PackageId {
419419

420420
impl<'a> ToPkgId for &'a str {
421421
fn to_pkgid(&self) -> PackageId {
422-
PackageId::new(*self, "1.0.0", registry_loc()).unwrap()
422+
PackageId::try_new(*self, "1.0.0", registry_loc()).unwrap()
423423
}
424424
}
425425

426426
impl<T: AsRef<str>, U: AsRef<str>> ToPkgId for (T, U) {
427427
fn to_pkgid(&self) -> PackageId {
428428
let (name, vers) = self;
429-
PackageId::new(name.as_ref(), vers.as_ref(), registry_loc()).unwrap()
429+
PackageId::try_new(name.as_ref(), vers.as_ref(), registry_loc()).unwrap()
430430
}
431431
}
432432

@@ -472,15 +472,15 @@ pub fn pkg_dep<T: ToPkgId>(name: T, dep: Vec<Dependency>) -> Summary {
472472
}
473473

474474
pub fn pkg_id(name: &str) -> PackageId {
475-
PackageId::new(name, "1.0.0", registry_loc()).unwrap()
475+
PackageId::try_new(name, "1.0.0", registry_loc()).unwrap()
476476
}
477477

478478
fn pkg_id_loc(name: &str, loc: &str) -> PackageId {
479479
let remote = loc.into_url();
480480
let master = GitReference::Branch("master".to_string());
481481
let source_id = SourceId::for_git(&remote.unwrap(), master).unwrap();
482482

483-
PackageId::new(name, "1.0.0", source_id).unwrap()
483+
PackageId::try_new(name, "1.0.0", source_id).unwrap()
484484
}
485485

486486
pub fn pkg_loc(name: &str, loc: &str) -> Summary {

src/cargo/core/package_id.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ impl Hash for PackageId {
123123
}
124124

125125
impl PackageId {
126-
pub fn new(
126+
pub fn try_new(
127127
name: impl Into<InternedString>,
128128
version: &str,
129129
sid: SourceId,
@@ -242,25 +242,26 @@ mod tests {
242242
let loc = CRATES_IO_INDEX.into_url().unwrap();
243243
let repo = SourceId::for_registry(&loc).unwrap();
244244

245-
assert!(PackageId::new("foo", "1.0", repo).is_err());
246-
assert!(PackageId::new("foo", "1", repo).is_err());
247-
assert!(PackageId::new("foo", "bar", repo).is_err());
248-
assert!(PackageId::new("foo", "", repo).is_err());
245+
assert!(PackageId::try_new("foo", "1.0", repo).is_err());
246+
assert!(PackageId::try_new("foo", "1", repo).is_err());
247+
assert!(PackageId::try_new("foo", "bar", repo).is_err());
248+
assert!(PackageId::try_new("foo", "", repo).is_err());
249249
}
250250

251251
#[test]
252252
fn display() {
253253
let loc = CRATES_IO_INDEX.into_url().unwrap();
254-
let pkg_id = PackageId::new("foo", "1.0.0", SourceId::for_registry(&loc).unwrap()).unwrap();
254+
let pkg_id =
255+
PackageId::try_new("foo", "1.0.0", SourceId::for_registry(&loc).unwrap()).unwrap();
255256
assert_eq!("foo v1.0.0", pkg_id.to_string());
256257
}
257258

258259
#[test]
259260
fn unequal_build_metadata() {
260261
let loc = CRATES_IO_INDEX.into_url().unwrap();
261262
let repo = SourceId::for_registry(&loc).unwrap();
262-
let first = PackageId::new("foo", "0.0.1+first", repo).unwrap();
263-
let second = PackageId::new("foo", "0.0.1+second", repo).unwrap();
263+
let first = PackageId::try_new("foo", "0.0.1+first", repo).unwrap();
264+
let second = PackageId::try_new("foo", "0.0.1+second", repo).unwrap();
264265
assert_ne!(first, second);
265266
assert_ne!(first.inner, second.inner);
266267
}

src/cargo/core/package_id_spec.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ mod tests {
714714
let url = Url::parse("https://example.com").unwrap();
715715
let sid = SourceId::for_registry(&url).unwrap();
716716

717-
let foo = PackageId::new("foo", "1.2.3", sid).unwrap();
717+
let foo = PackageId::try_new("foo", "1.2.3", sid).unwrap();
718718
assert!(PackageIdSpec::parse("foo").unwrap().matches(foo));
719719
assert!(!PackageIdSpec::parse("bar").unwrap().matches(foo));
720720
assert!(PackageIdSpec::parse("foo:1.2.3").unwrap().matches(foo));
@@ -735,7 +735,7 @@ mod tests {
735735
.unwrap()
736736
.matches(foo));
737737

738-
let meta = PackageId::new("meta", "1.2.3+hello", sid).unwrap();
738+
let meta = PackageId::try_new("meta", "1.2.3+hello", sid).unwrap();
739739
assert!(PackageIdSpec::parse("meta").unwrap().matches(meta));
740740
assert!(PackageIdSpec::parse("meta@1").unwrap().matches(meta));
741741
assert!(PackageIdSpec::parse("meta@1.2").unwrap().matches(meta));
@@ -750,7 +750,7 @@ mod tests {
750750
.unwrap()
751751
.matches(meta));
752752

753-
let pre = PackageId::new("pre", "1.2.3-alpha.0", sid).unwrap();
753+
let pre = PackageId::try_new("pre", "1.2.3-alpha.0", sid).unwrap();
754754
assert!(PackageIdSpec::parse("pre").unwrap().matches(pre));
755755
assert!(!PackageIdSpec::parse("pre@1").unwrap().matches(pre));
756756
assert!(!PackageIdSpec::parse("pre@1.2").unwrap().matches(pre));

src/cargo/core/resolver/encode.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ impl EncodableResolve {
209209
debug!("path dependency now missing {} v{}", pkg.name, pkg.version);
210210
continue;
211211
}
212-
Some(&source) => PackageId::new(&pkg.name, &pkg.version, source)?,
212+
Some(&source) => PackageId::try_new(&pkg.name, &pkg.version, source)?,
213213
};
214214

215215
// If a package has a checksum listed directly on it then record
@@ -365,7 +365,7 @@ impl EncodableResolve {
365365
let mut unused_patches = Vec::new();
366366
for pkg in self.patch.unused {
367367
let id = match pkg.source.as_deref().or_else(|| path_deps.get(&pkg.name)) {
368-
Some(&src) => PackageId::new(&pkg.name, &pkg.version, src)?,
368+
Some(&src) => PackageId::try_new(&pkg.name, &pkg.version, src)?,
369369
None => continue,
370370
};
371371
unused_patches.push(id);

src/cargo/core/resolver/version_prefs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ mod test {
139139
fn pkgid(name: &str, version: &str) -> PackageId {
140140
let src_id =
141141
SourceId::from_url("registry+https://github.com/rust-lang/crates.io-index").unwrap();
142-
PackageId::new(name, version, src_id).unwrap()
142+
PackageId::try_new(name, version, src_id).unwrap()
143143
}
144144

145145
fn dep(name: &str, version: &str) -> Dependency {

src/cargo/core/summary.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ mod tests {
474474
fn valid_feature_names() {
475475
let loc = CRATES_IO_INDEX.into_url().unwrap();
476476
let source_id = SourceId::for_registry(&loc).unwrap();
477-
let pkg_id = PackageId::new("foo", "1.0.0", source_id).unwrap();
477+
let pkg_id = PackageId::try_new("foo", "1.0.0", source_id).unwrap();
478478

479479
assert!(validate_feature_name(pkg_id, "c++17").is_ok());
480480
assert!(validate_feature_name(pkg_id, "128bit").is_ok());

src/cargo/ops/common_for_install_and_uninstall.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ cannot install package `{name} {ver}`, it requires rustc {msrv} or newer, while
650650
let is_yanked: bool = if dep.version_req().is_exact() {
651651
let version: String = dep.version_req().to_string();
652652
if let Ok(pkg_id) =
653-
PackageId::new(dep.package_name(), &version[1..], source.source_id())
653+
PackageId::try_new(dep.package_name(), &version[1..], source.source_id())
654654
{
655655
source.invalidate_cache();
656656
loop {

tests/testsuite/profile_config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,8 +428,8 @@ fn named_config_profile() {
428428
let profiles = Profiles::new(&ws, profile_name).unwrap();
429429

430430
let crates_io = cargo::core::SourceId::crates_io(&config).unwrap();
431-
let a_pkg = PackageId::new("a", "0.1.0", crates_io).unwrap();
432-
let dep_pkg = PackageId::new("dep", "0.1.0", crates_io).unwrap();
431+
let a_pkg = PackageId::try_new("a", "0.1.0", crates_io).unwrap();
432+
let dep_pkg = PackageId::try_new("dep", "0.1.0", crates_io).unwrap();
433433

434434
// normal package
435435
let kind = CompileKind::Host;

0 commit comments

Comments
 (0)