mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 20:11:12 +01:00
Add missing named constraints and self in facet type debugger dump (#7018)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user