Show terms in derivation tree debug output (#9862)

This commit is contained in:
Zanie Blue 2024-12-13 22:53:33 -06:00 committed by GitHub
parent f0a2d6f076
commit c2e2c39449
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 28 additions and 20 deletions

View File

@ -387,14 +387,23 @@ fn display_tree_inner(
lines: &mut Vec<String>,
depth: usize,
) {
let prefix = " ".repeat(depth).to_string();
match error {
DerivationTree::Derived(derived) => {
display_tree_inner(&derived.cause1, lines, depth + 1);
display_tree_inner(&derived.cause2, lines, depth + 1);
for (package, term) in &derived.terms {
match term {
Term::Positive(versions) => {
lines.push(format!("{prefix}term {package}{versions}"));
}
DerivationTree::External(external) => {
let prefix = " ".repeat(depth).to_string();
match external {
Term::Negative(versions) => {
lines.push(format!("{prefix}term not {package}{versions}"));
}
}
}
}
DerivationTree::External(external) => match external {
External::FromDependencyOf(package, version, dependency, dependency_version) => {
lines.push(format!(
"{prefix}{package}{version} depends on {dependency}{dependency_version}"
@ -414,8 +423,7 @@ fn display_tree_inner(
External::NotRoot(package, versions) => {
lines.push(format!("{prefix}not root {package}{versions}"));
}
}
}
},
}
}