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
@@ -55,8 +55,7 @@ static auto BuildInterfaceDecl(Context& context,
auto interface_decl =
SemIR::InterfaceDecl{SemIR::TypeType::SingletonTypeId,
SemIR::InterfaceId::None, decl_block_id};
auto interface_decl_id =
AddPlaceholderInst(context, SemIR::LocIdAndInst(node_id, interface_decl));
auto interface_decl_id = AddPlaceholderInst(context, node_id, interface_decl);
SemIR::Interface interface_info = {name_context.MakeEntityWithParamsBase(
name, interface_decl_id, /*is_extern=*/false,