Reduce explicit SemIR::LocIdAndInst construction (#5153)

Building on #5151 reducing `UncheckedLoc` use, further remove uses of
the `SemIR::LocIdAndInst` constructor where we typically have overloads
that don't need it. Add parallel convenience wrappers for placeholder
insts.

Also refactors `MergeReplacing`. I don't think it makes sense to add an
overload for `ReplaceLocIdAndInstBeforeConstantUse`, but we can still
reduce the `LocIdAndInst` construction there.
This commit is contained in:
Jon Ross-Perkins
2025-03-21 21:45:53 +00:00
committed by GitHub
parent 402dc2c064
commit 832c6398d6
12 changed files with 78 additions and 94 deletions
+1 -2
View File
@@ -464,8 +464,7 @@ static auto BuildFunctionDecl(Context& context,
SemIR::FunctionDecl function_decl = {SemIR::TypeId::None,
SemIR::FunctionId::None,
context.inst_block_stack().Pop()};
auto decl_id =
AddPlaceholderInst(context, SemIR::LocIdAndInst(node_id, function_decl));
auto decl_id = AddPlaceholderInst(context, node_id, function_decl);
RequestVtableIfVirtual(context, node_id, virtual_modifier, parent_scope_inst,
decl_id);