mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Replace form insts with actions (#7100)
See [here](https://docs.google.com/document/d/1rWcueFwIfZox6GKVGxiUG4cBzjrZ6djXiIDGyJDtrE4/edit?tab=t.0) for the design doc. This also removes the default value of the `result_type_inst_id` parameter of `HandleAction`, moves it before the action in the parameter list, and documents it. This solves two problems: - The default made it easy to forget, leading to unnecessary `TypeOfInst` instructions. - When it was present, putting it after the fairly "bulky" action argument tended to make the callsite harder to read.
This commit is contained in:
@@ -2369,7 +2369,9 @@ static auto TryEvalTypedInst(EvalContext& eval_context, SemIR::InstId inst_id,
|
||||
if constexpr (ConstantKind == SemIR::InstConstantKind::Always ||
|
||||
ConstantKind == SemIR::InstConstantKind::WheneverPossible) {
|
||||
return MakeConstantResult(eval_context.context(), inst, phase);
|
||||
} else if constexpr (ConstantKind == SemIR::InstConstantKind::InstAction) {
|
||||
} else if constexpr (ConstantKind ==
|
||||
SemIR::InstConstantKind::ConstantInstAction ||
|
||||
ConstantKind == SemIR::InstConstantKind::InstAction) {
|
||||
auto result_inst_id = PerformDelayedAction(
|
||||
eval_context.context(), SemIR::LocId(inst_id), inst.As<InstT>());
|
||||
if (result_inst_id.has_value()) {
|
||||
|
||||
Reference in New Issue
Block a user