Skip to content

Commit 403a7ac

Browse files
committed
Auto merge of #13123 - epage:pure, r=weihanglo
refactor: Clarify PackageId constructor names ### What does this PR try to resolve? From #13080 > I would love to see eithe rename this function or have a doc comment on it. It always puzzle me what pure means. From my experience, `new` is more normally a name for more direct construction when there are alternatives ### How should we test and review this PR? ### Additional information
2 parents 9787229 + 28f36c7 commit 403a7ac

File tree

10 files changed

+29
-28
lines changed

10 files changed

+29
-28
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: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ impl<'de> de::Deserialize<'de> for PackageId {
8888
strip_parens(rest).ok_or_else(|| de::Error::custom("invalid serialized PackageId"))?;
8989
let source_id = SourceId::from_url(url).map_err(de::Error::custom)?;
9090

91-
Ok(PackageId::pure(name, version, source_id))
91+
Ok(PackageId::new(name, version, source_id))
9292
}
9393
}
9494

@@ -123,16 +123,16 @@ 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,
130130
) -> CargoResult<PackageId> {
131131
let v = version.parse()?;
132-
Ok(PackageId::pure(name.into(), v, sid))
132+
Ok(PackageId::new(name.into(), v, sid))
133133
}
134134

135-
pub fn pure(name: InternedString, version: semver::Version, source_id: SourceId) -> PackageId {
135+
pub fn new(name: InternedString, version: semver::Version, source_id: SourceId) -> PackageId {
136136
let inner = PackageIdInner {
137137
name,
138138
version,
@@ -161,7 +161,7 @@ impl PackageId {
161161
}
162162

163163
pub fn with_source_id(self, source: SourceId) -> PackageId {
164-
PackageId::pure(self.inner.name, self.inner.version.clone(), source)
164+
PackageId::new(self.inner.name, self.inner.version.clone(), source)
165165
}
166166

167167
pub fn map_source(self, to_replace: SourceId, replace_with: SourceId) -> Self {
@@ -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("[email protected]").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("[email protected]").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 {

src/cargo/sources/registry/index.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,7 @@ impl IndexSummary {
944944
} = serde_json::from_slice(line)?;
945945
let v = v.unwrap_or(1);
946946
tracing::trace!("json parsed registry {}/{}", name, vers);
947-
let pkgid = PackageId::pure(name.into(), vers.clone(), source_id);
947+
let pkgid = PackageId::new(name.into(), vers.clone(), source_id);
948948
let deps = deps
949949
.into_iter()
950950
.map(|dep| dep.into_dep(source_id))

src/cargo/util/toml/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ pub fn to_real_manifest(
500500

501501
package.version = version.clone().map(manifest::InheritableField::Value);
502502

503-
let pkgid = PackageId::pure(
503+
let pkgid = PackageId::new(
504504
package.name.as_str().into(),
505505
version
506506
.clone()

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)