mirror of
https://github.com/rust-lang/cargo
synced 2024-09-12 20:41:49 +00:00
remove Candidate.replace. Look it up if needed.
This commit is contained in:
parent
1b4fab3263
commit
c86b834529
|
@ -38,7 +38,7 @@ pub struct RegistryQueryer<'a> {
|
|||
Rc<(HashSet<InternedString>, Rc<Vec<DepInfo>>)>,
|
||||
>,
|
||||
/// all the cases we ended up using a supplied replacement
|
||||
used_replacements: HashMap<PackageId, PackageId>,
|
||||
used_replacements: HashMap<PackageId, Summary>,
|
||||
}
|
||||
|
||||
impl<'a> RegistryQueryer<'a> {
|
||||
|
@ -60,7 +60,11 @@ impl<'a> RegistryQueryer<'a> {
|
|||
}
|
||||
|
||||
pub fn used_replacement_for(&self, p: PackageId) -> Option<(PackageId, PackageId)> {
|
||||
self.used_replacements.get(&p).map(|&r| (p, r))
|
||||
self.used_replacements.get(&p).map(|r| (p, r.package_id()))
|
||||
}
|
||||
|
||||
pub fn replacement_summary(&self, p: PackageId) -> Option<&Summary> {
|
||||
self.used_replacements.get(&p)
|
||||
}
|
||||
|
||||
/// Queries the `registry` to return a list of candidates for `dep`.
|
||||
|
@ -78,10 +82,7 @@ impl<'a> RegistryQueryer<'a> {
|
|||
self.registry.query(
|
||||
dep,
|
||||
&mut |s| {
|
||||
ret.push(Candidate {
|
||||
summary: s,
|
||||
replace: None,
|
||||
});
|
||||
ret.push(Candidate { summary: s });
|
||||
},
|
||||
false,
|
||||
)?;
|
||||
|
@ -157,12 +158,9 @@ impl<'a> RegistryQueryer<'a> {
|
|||
for dep in summary.dependencies() {
|
||||
debug!("\t{} => {}", dep.package_name(), dep.version_req());
|
||||
}
|
||||
if let Some(r) = &replace {
|
||||
self.used_replacements
|
||||
.insert(summary.package_id(), r.package_id());
|
||||
if let Some(r) = replace {
|
||||
self.used_replacements.insert(summary.package_id(), r);
|
||||
}
|
||||
|
||||
candidate.replace = replace;
|
||||
}
|
||||
|
||||
// When we attempt versions for a package we'll want to do so in a
|
||||
|
|
|
@ -183,7 +183,6 @@ fn activate_deps_loop(
|
|||
debug!("initial activation: {}", summary.package_id());
|
||||
let candidate = Candidate {
|
||||
summary: summary.clone(),
|
||||
replace: None,
|
||||
};
|
||||
let res = activate(&mut cx, registry, None, candidate, method.clone());
|
||||
match res {
|
||||
|
@ -659,7 +658,7 @@ fn activate(
|
|||
|
||||
let activated = cx.flag_activated(&candidate.summary, &method)?;
|
||||
|
||||
let candidate = match candidate.replace {
|
||||
let candidate = match registry.replacement_summary(candidate_pid) {
|
||||
Some(replace) => {
|
||||
if cx.flag_activated(&replace, &method)? && activated {
|
||||
return Ok(None);
|
||||
|
@ -669,7 +668,7 @@ fn activate(
|
|||
replace.package_id(),
|
||||
candidate_pid
|
||||
);
|
||||
replace
|
||||
replace.clone()
|
||||
}
|
||||
None => {
|
||||
if activated {
|
||||
|
|
|
@ -125,7 +125,6 @@ impl Method {
|
|||
#[derive(Clone)]
|
||||
pub struct Candidate {
|
||||
pub summary: Summary,
|
||||
pub replace: Option<Summary>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
|
Loading…
Reference in a new issue