Emit function definitions in check, for all specifics seen. (#5090)

Emitting definitions in check. This resolves the crash in lowering which
necessitated definitions be emitted.
Some of the test changes need further review.
This commit is contained in:
Alina Sbirlea
2025-04-02 21:51:25 +00:00
committed by GitHub
parent 6ee1006a61
commit 077cf56a8a
17 changed files with 100 additions and 66 deletions
-5
View File
@@ -189,8 +189,6 @@ auto PerformCall(Context& context, SemIR::LocId loc_id, SemIR::InstId callee_id,
context, SemIR::SpecificFunctionType::SingletonInstId),
.callee_id = generic_callee_id,
.specific_id = *callee_specific_id});
// TODO: Add to `definitions_required` when evaluating the
// `SpecificImplFunction`.
} else {
// This is a regular generic function. The callee is the specific function
// we deduced.
@@ -201,9 +199,6 @@ auto PerformCall(Context& context, SemIR::LocId loc_id, SemIR::InstId callee_id,
context, SemIR::SpecificFunctionType::SingletonInstId),
.callee_id = generic_callee_id,
.specific_id = *callee_specific_id});
// TODO: The specific function could be a symbolic constant. Delay doing
// this until we form a concrete `SpecificFunction` constant.
context.definitions_required().push_back(callee_id);
}
// Add the `self` argument back if there was one.