Expand use of CheckIRId stores (#5820)

This is trying to make it clearer when vectors are being indexed with
`CheckIRId`.

The only one that I still kind of want to change is the
`SmallVector<std::unique_ptr<CompilationUnit>>`, but because it's a
`unique_ptr` that's a little more complex. I may not bother.

Note, some of the changes around nuanced `SmallVector` interactions were
based on trying to copy the way `SmallVector` itself takes arguments,
like with range passing.
This commit is contained in:
Jon Ross-Perkins
2025-07-21 20:02:27 +00:00
committed by GitHub
parent 7ccc1e0144
commit bd4fbb4393
25 changed files with 171 additions and 116 deletions
+3 -2
View File
@@ -53,7 +53,8 @@ FileContext::FileContext(Context& context, const SemIR::File& sem_ir,
nullptr)),
constants_(LoweredConstantStore::MakeWithExplicitSize(
sem_ir.insts().size(), nullptr)),
lowered_specifics_(sem_ir.generics(), {}),
lowered_specifics_(sem_ir.generics(),
llvm::SmallVector<SemIR::SpecificId>()),
coalescer_(vlog_stream_, sem_ir.specifics()),
vtables_(decltype(vtables_)::MakeForOverwrite(sem_ir.vtables())),
specific_vtables_(sem_ir.specifics(), nullptr) {
@@ -541,7 +542,7 @@ auto FileContext::BuildFunctionBody(SemIR::FunctionId function_id,
// On crash, report the function we were lowering.
PrettyStackTraceFunction stack_trace_entry([&](llvm::raw_ostream& output) {
SemIR::DiagnosticLocConverter converter(
context().tree_and_subtrees_getters(), &sem_ir());
&context().tree_and_subtrees_getters(), &sem_ir());
auto converted =
converter.Convert(SemIR::LocId(declaration_function.definition_id),
/*token_only=*/false);