Skip to content

Commit

Permalink
cargo-tree: Handle -e no-proc-macro when building the graph
Browse files Browse the repository at this point in the history
This is closer to how the edge-based filters work ([no-]build etc.),
and results in a more useful behavior when combined with -i or -d.
  • Loading branch information
jrose-signal committed Apr 27, 2023
1 parent 747a592 commit a0576d1
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 28 deletions.
4 changes: 4 additions & 0 deletions src/cargo/ops/tree/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,10 @@ fn add_pkg(
if !opts.edge_kinds.contains(&EdgeKind::Dep(dep.kind())) {
return false;
}
// Filter out proc-macrcos if requested.
if opts.no_proc_macro && graph.package_for_id(dep_id).proc_macro() {
return false;
}
if dep.is_optional() {
// If the new feature resolver does not enable this
// optional dep, then don't use it.
Expand Down
18 changes: 0 additions & 18 deletions src/cargo/ops/tree/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,6 @@ fn print(
opts.prefix,
opts.no_dedupe,
opts.max_display_depth,
opts.no_proc_macro,
&mut visited_deps,
&mut levels_continue,
&mut print_stack,
Expand All @@ -288,7 +287,6 @@ fn print_node<'a>(
prefix: Prefix,
no_dedupe: bool,
max_display_depth: u32,
no_proc_macro: bool,
visited_deps: &mut HashSet<usize>,
levels_continue: &mut Vec<bool>,
print_stack: &mut Vec<usize>,
Expand Down Expand Up @@ -348,7 +346,6 @@ fn print_node<'a>(
prefix,
no_dedupe,
max_display_depth,
no_proc_macro,
visited_deps,
levels_continue,
print_stack,
Expand All @@ -369,7 +366,6 @@ fn print_dependencies<'a>(
prefix: Prefix,
no_dedupe: bool,
max_display_depth: u32,
no_proc_macro: bool,
visited_deps: &mut HashSet<usize>,
levels_continue: &mut Vec<bool>,
print_stack: &mut Vec<usize>,
Expand Down Expand Up @@ -405,19 +401,6 @@ fn print_dependencies<'a>(

let mut it = deps
.iter()
.filter(|dep| {
// Filter out proc-macro dependencies.
if no_proc_macro {
match graph.node(**dep) {
&Node::Package { package_id, .. } => {
!graph.package_for_id(package_id).proc_macro()
}
_ => true,
}
} else {
true
}
})
.filter(|dep| {
// Filter out packages to prune.
match graph.node(**dep) {
Expand All @@ -441,7 +424,6 @@ fn print_dependencies<'a>(
prefix,
no_dedupe,
max_display_depth,
no_proc_macro,
visited_deps,
levels_continue,
print_stack,
Expand Down
11 changes: 1 addition & 10 deletions tests/testsuite/tree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1134,14 +1134,7 @@ dupe-dep v2.0.0
.run();

p.cargo("tree --duplicates --edges no-proc-macro")
.with_stdout(
"\
dupe-dep v1.0.0
dupe-dep v2.0.0
└── foo v0.1.0 ([..]/foo)
",
)
.with_stdout("")
.run();
}

Expand Down Expand Up @@ -1600,8 +1593,6 @@ somedep v1.0.0
"\
somedep v1.0.0
└── foo v0.1.0 ([..]/foo)
somedep v1.0.0
",
)
.run();
Expand Down

0 comments on commit a0576d1

Please sign in to comment.