mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Give ReturnExpr a target only when initialization is in-place (#6570)
Also clarify and enforce that `ConversionTarget::init_id` is used only as storage for in-place initialization, and correspondingly rename it to `storage_id`.
This commit is contained in:
@@ -174,6 +174,10 @@ auto BuildReturnWithExpr(Context& context, SemIR::LocId loc_id,
|
||||
out_param_id = call_params[init_form.index.index];
|
||||
CARBON_CHECK(out_param_id.has_value());
|
||||
expr_id = Initialize(context, loc_id, out_param_id, expr_id);
|
||||
if (!SemIR::InitRepr::ForType(context.sem_ir(), return_type_id)
|
||||
.MightBeInPlace()) {
|
||||
out_param_id = SemIR::InstId::None;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CARBON_KIND(SemIR::RefForm ref_form): {
|
||||
|
||||
Reference in New Issue
Block a user