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,35 +387,43 @@ 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);
}
DerivationTree::External(external) => {
let prefix = " ".repeat(depth).to_string();
match external {
External::FromDependencyOf(package, version, dependency, dependency_version) => {
lines.push(format!(
"{prefix}{package}{version} depends on {dependency}{dependency_version}"
));
}
External::Custom(package, versions, reason) => match reason {
UnavailableReason::Package(_) => {
lines.push(format!("{prefix}{package} {reason}"));
for (package, term) in &derived.terms {
match term {
Term::Positive(versions) => {
lines.push(format!("{prefix}term {package}{versions}"));
}
UnavailableReason::Version(_) => {
lines.push(format!("{prefix}{package}{versions} {reason}"));
Term::Negative(versions) => {
lines.push(format!("{prefix}term not {package}{versions}"));
}
},
External::NoVersions(package, versions) => {
lines.push(format!("{prefix}no versions of {package}{versions}"));
}
External::NotRoot(package, versions) => {
lines.push(format!("{prefix}not root {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}"
));
}
External::Custom(package, versions, reason) => match reason {
UnavailableReason::Package(_) => {
lines.push(format!("{prefix}{package} {reason}"));
}
UnavailableReason::Version(_) => {
lines.push(format!("{prefix}{package}{versions} {reason}"));
}
},
External::NoVersions(package, versions) => {
lines.push(format!("{prefix}no versions of {package}{versions}"));
}
External::NotRoot(package, versions) => {
lines.push(format!("{prefix}not root {package}{versions}"));
}
},
}
}