summaries: &[(Summary, Method)],
replacements: &[(PackageIdSpec, Dependency)],
registry: &mut Registry,
- try_to_use: &[&PackageId],
+ try_to_use: &HashSet<&PackageId>,
config: Option<&Config>,
print_warnings: bool,
) -> CargoResult<Resolve> {
struct RegistryQueryer<'a> {
registry: &'a mut (Registry + 'a),
replacements: &'a [(PackageIdSpec, Dependency)],
- try_to_use: HashSet<&'a PackageId>,
+ try_to_use: &'a HashSet<&'a PackageId>,
// TODO: with nll the Rc can be removed
cache: HashMap<Dependency, Rc<Vec<Candidate>>>,
}
fn new(
registry: &'a mut Registry,
replacements: &'a [(PackageIdSpec, Dependency)],
- try_to_use: &'a [&'a PackageId],
+ try_to_use: &'a HashSet<&'a PackageId>,
) -> Self {
RegistryQueryer {
registry,
replacements,
cache: HashMap::new(),
- try_to_use: try_to_use.iter().cloned().collect(),
+ try_to_use,
}
}
// In the case where a previous instance of resolve is available, we
// want to lock as many packages as possible to the previous version
// without disturbing the graph structure.
- let mut try_to_use = Vec::new();
+ let mut try_to_use = HashSet::new();
if let Some(r) = previous {
trace!("previous: {:?}", r);
register_previous_locks(ws, registry, r, keep);
-use std::collections::BTreeMap;
+use std::collections::{BTreeMap, HashSet};
use hamcrest::{assert_that, contains, is_not};
let mut registry = MyRegistry(registry);
let summary = Summary::new(pkg.clone(), deps, BTreeMap::new(), None).unwrap();
let method = Method::Everything;
- let resolve = resolver::resolve(&[(summary, method)], &[], &mut registry, &[], None, false)?;
+ let resolve = resolver::resolve(
+ &[(summary, method)],
+ &[],
+ &mut registry,
+ &HashSet::new(),
+ None,
+ false,
+ )?;
let res = resolve.iter().cloned().collect();
Ok(res)
}