Skip to content

Commit 31ff714

Browse files
committed
it compiled (will test)
1 parent 6e65939 commit 31ff714

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/dfx/src/lib/graph/traverse_filtered.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ impl<NodeId, VM> DfsFiltered<NodeId, VM> {
1616
}
1717

1818
pub fn traverse<G, P, C, NodeWeight>(&mut self, graph: G, mut predicate: P, mut call: C)
19-
where C: Fn(&NodeId, &NodeId) -> (),
19+
where C: FnMut(&NodeId, &NodeId) -> (),
2020
G: IntoNeighbors<NodeId = NodeId> + DataMap<NodeWeight = NodeWeight>,
2121
P: FnMut(&NodeId) -> bool,
2222
NodeId: Copy + PartialEq,

src/dfx/src/lib/models/canister.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::lib::environment::Environment;
77
use crate::lib::error::{BuildError, DfxError, DfxResult};
88
use crate::lib::metadata::dfx::DfxMetadata;
99
use crate::lib::metadata::names::{CANDID_ARGS, CANDID_SERVICE, DFX};
10-
use crate::lib::graph::traverse_filtered::{self, DfsFiltered};
10+
use crate::lib::graph::traverse_filtered::DfsFiltered;
1111
use crate::lib::wasm::file::{compress_bytes, read_wasm_module};
1212
use crate::util::assets;
1313
use anyhow::{anyhow, bail, Context};
@@ -582,14 +582,15 @@ impl CanisterPool {
582582
let source_graph = &self.imports.borrow().graph;
583583
let source_ids = &self.imports.borrow().nodes;
584584
let start: Vec<_> =
585-
real_canisters_to_build.iter().map(|name| &MotokoImport::Canister(name.clone())).collect(); // `clone` is inefficient.
586-
let start = start.into_iter().map(|node| *source_ids.get(node).unwrap()).collect();
585+
real_canisters_to_build.iter().map(|name| MotokoImport::Canister(name.clone())).collect(); // `clone` is inefficient.
586+
let start = start.into_iter().map(|node| *source_ids.get(&node).unwrap()).collect();
587587
// // Transform the graph of file dependencies to graph of canister dependencies.
588588
// // For this do DFS for each of `real_canisters_to_build`.
589589
let mut dest_graph: DiGraph<CanisterId, ()> = DiGraph::new();
590590
let mut dest_id_set = HashMap::new();
591591
let dfs = Dfs::from_parts(start, HashSet::new()); // TODO: Use `FixedBitSet` instead of `HashMap`?
592-
let filtered_dfs = DfsFiltered::new(dfs);
592+
let mut filtered_dfs = DfsFiltered::new(dfs);
593+
// let dest_id_set = &mut dest_id_set;
593594
filtered_dfs.traverse(
594595
source_graph,
595596
|&s| {
@@ -600,10 +601,10 @@ impl CanisterPool {
600601
false
601602
}
602603
},
603-
|parent_id, child_id| {
604-
let parent_id = *dest_id_set.entry(*parent_id).or_insert_with(|| parent_id);
605-
let child_id = *dest_id_set.entry(*child_id).or_insert_with(|| child_id);
606-
dest_graph.add_edge(*parent_id, *child_id, ());
604+
|&parent_id, &child_id| {
605+
let parent_id = *dest_id_set.entry(parent_id).or_insert_with(|| parent_id);
606+
let child_id = *dest_id_set.entry(child_id).or_insert_with(|| child_id);
607+
dest_graph.add_edge(parent_id, child_id, ());
607608
}
608609
);
609610
// let source_graph = &self.imports.borrow().graph;

0 commit comments

Comments
 (0)