Skip to content

Commit c86b834

Browse files
committed
remove Candidate.replace. Look it up if needed.
1 parent 1b4fab3 commit c86b834

File tree

3 files changed

+11
-15
lines changed

3 files changed

+11
-15
lines changed

src/cargo/core/resolver/dep_cache.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub struct RegistryQueryer<'a> {
3838
Rc<(HashSet<InternedString>, Rc<Vec<DepInfo>>)>,
3939
>,
4040
/// all the cases we ended up using a supplied replacement
41-
used_replacements: HashMap<PackageId, PackageId>,
41+
used_replacements: HashMap<PackageId, Summary>,
4242
}
4343

4444
impl<'a> RegistryQueryer<'a> {
@@ -60,7 +60,11 @@ impl<'a> RegistryQueryer<'a> {
6060
}
6161

6262
pub fn used_replacement_for(&self, p: PackageId) -> Option<(PackageId, PackageId)> {
63-
self.used_replacements.get(&p).map(|&r| (p, r))
63+
self.used_replacements.get(&p).map(|r| (p, r.package_id()))
64+
}
65+
66+
pub fn replacement_summary(&self, p: PackageId) -> Option<&Summary> {
67+
self.used_replacements.get(&p)
6468
}
6569

6670
/// Queries the `registry` to return a list of candidates for `dep`.
@@ -78,10 +82,7 @@ impl<'a> RegistryQueryer<'a> {
7882
self.registry.query(
7983
dep,
8084
&mut |s| {
81-
ret.push(Candidate {
82-
summary: s,
83-
replace: None,
84-
});
85+
ret.push(Candidate { summary: s });
8586
},
8687
false,
8788
)?;
@@ -157,12 +158,9 @@ impl<'a> RegistryQueryer<'a> {
157158
for dep in summary.dependencies() {
158159
debug!("\t{} => {}", dep.package_name(), dep.version_req());
159160
}
160-
if let Some(r) = &replace {
161-
self.used_replacements
162-
.insert(summary.package_id(), r.package_id());
161+
if let Some(r) = replace {
162+
self.used_replacements.insert(summary.package_id(), r);
163163
}
164-
165-
candidate.replace = replace;
166164
}
167165

168166
// When we attempt versions for a package we'll want to do so in a

src/cargo/core/resolver/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ fn activate_deps_loop(
183183
debug!("initial activation: {}", summary.package_id());
184184
let candidate = Candidate {
185185
summary: summary.clone(),
186-
replace: None,
187186
};
188187
let res = activate(&mut cx, registry, None, candidate, method.clone());
189188
match res {
@@ -659,7 +658,7 @@ fn activate(
659658

660659
let activated = cx.flag_activated(&candidate.summary, &method)?;
661660

662-
let candidate = match candidate.replace {
661+
let candidate = match registry.replacement_summary(candidate_pid) {
663662
Some(replace) => {
664663
if cx.flag_activated(&replace, &method)? && activated {
665664
return Ok(None);
@@ -669,7 +668,7 @@ fn activate(
669668
replace.package_id(),
670669
candidate_pid
671670
);
672-
replace
671+
replace.clone()
673672
}
674673
None => {
675674
if activated {

src/cargo/core/resolver/types.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ impl Method {
125125
#[derive(Clone)]
126126
pub struct Candidate {
127127
pub summary: Summary,
128-
pub replace: Option<Summary>,
129128
}
130129

131130
#[derive(Clone)]

0 commit comments

Comments
 (0)