Include bundle operands in operand refinement (#7391)

Also some Bundle API tweaks:
- Remove support for non-canonical bundle IDs. Bundles don't have a
unique identity, so non-canonical bundle IDs would bloat the SemIR for
no benefit.
- Adjust the conversions between raw and typed bundle IDs to not be
templated. This makes the conversions easier to access in a debugger.
This commit is contained in:
Geoff Romer
2026-06-19 00:22:05 +00:00
committed by GitHub
parent 2ebc7cdb40
commit 4e086a6615
4 changed files with 77 additions and 60 deletions
+4 -3
View File
@@ -833,9 +833,10 @@ auto MatchContext::DoPreWork(State state, SemIR::SpliceInst splice,
context_.types().GetTypeInstId(splice.type_id),
{.type_id = SemIR::InstType::TypeId,
.args_id =
context_.bundles().Add<SemIR::CalleePatternMatchAction::Args>(
{.pattern_id = entry.pattern_id,
.parent_index = callee_state->index.Allocate()})});
context_.bundles()
.AddCanonical<SemIR::CalleePatternMatchAction::Args>(
{.pattern_id = entry.pattern_id,
.parent_index = callee_state->index.Allocate()})});
callee_state->PushCallParamPattern(
context_, SemIR::LocId(entry.pattern_id), entry.pattern_id,
specific_id_stack_.back());