From 1fa7a64cd4dfe7738e0808f5fef7d486f80236c0 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 2 Apr 2026 16:50:59 -0400 Subject: [PATCH] Add missing named constraints and self in facet type debugger dump (#7018) --- toolchain/sem_ir/dump.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/toolchain/sem_ir/dump.cpp b/toolchain/sem_ir/dump.cpp index 1680aadea4c3..bbd4c8d05e96 100644 --- a/toolchain/sem_ir/dump.cpp +++ b/toolchain/sem_ir/dump.cpp @@ -235,6 +235,21 @@ LLVM_DUMP_METHOD auto Dump(const File& file, FacetTypeId facet_type_id) out << "; " << DumpSpecificSummary(file, impls.specific_id); } } + for (auto impls : facet_type.extend_named_constraints) { + out << "\n - " + << DumpNamedConstraintSummary(file, impls.named_constraint_id); + if (impls.specific_id.has_value()) { + out << "; " << DumpSpecificSummary(file, impls.specific_id); + } + out << " (extend)"; + } + for (auto impls : facet_type.self_impls_named_constraints) { + out << "\n - " + << DumpNamedConstraintSummary(file, impls.named_constraint_id); + if (impls.specific_id.has_value()) { + out << "; " << DumpSpecificSummary(file, impls.specific_id); + } + } for (auto rewrite : facet_type.rewrite_constraints) { out << "\n" << " - " << DumpInstSummary(file, rewrite.lhs_id) << "\n" @@ -287,18 +302,19 @@ LLVM_DUMP_METHOD auto Dump(const File& file, for (auto [i, req_impl] : llvm::enumerate(identified_facet_type.required_impls())) { auto [self, req_interface] = req_impl; - // TODO: Dump the self too. - out << "\n - " << DumpInterfaceSummary(file, req_interface.interface_id); + out << "\n - self: " << DumpConstantSummary(file, self); + out << "\n impls " + << DumpInterfaceSummary(file, req_interface.interface_id); if (req_interface.specific_id.has_value()) { out << "; " << DumpSpecificSummary(file, req_interface.specific_id); } if (req_interface == identified_facet_type.impl_as_target_interface()) { - out << " (to impl)"; + out << "\n - `impl as` target"; } } if (!identified_facet_type.is_valid_impl_as_target()) { - out << "\n - (" << identified_facet_type.num_interfaces_to_impl() - << " to impl)\n"; + out << "\n - " << identified_facet_type.num_interfaces_to_impl() + << " possible `impl as` targets"; } return out.TakeStr(); }