Associate a name with ClassDecl (#3447)

Note generics will probably need different behavior.

---------

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
Jon Ross-Perkins
2023-12-02 00:44:57 +00:00
committed by GitHub
co-authored by Richard Smith
parent ca53c18ddc
commit 962defd1e8
46 changed files with 96 additions and 84 deletions
+12
View File
@@ -437,6 +437,12 @@ class InstNamer {
.name_id);
continue;
}
case ClassDecl::Kind: {
add_inst_name_id(
sem_ir_.classes().Get(inst.As<ClassDecl>().class_id).name_id,
".decl");
continue;
}
case ClassType::Kind: {
add_inst_name_id(
sem_ir_.classes().Get(inst.As<ClassType>().class_id).name_id);
@@ -710,6 +716,12 @@ class Formatter {
}
}
// Print ClassDecl with type-like semantics even though it lacks a type_id.
auto FormatInstructionLHS(InstId inst_id, ClassDecl /*inst*/) -> void {
FormatInstName(inst_id);
out_ << " = ";
}
template <typename InstT>
auto FormatInstructionRHS(InstT inst) -> void {
// By default, an instruction has a comma-separated argument list.