Track complete types required by a generic. (#4652)

When a generic requires a symbolic type to be complete, add a new
`require_complete_type` instruction to the generic eval block. During
monomorphization of such an instruction, require that type to be
complete.
This commit is contained in:
Richard Smith
2024-12-10 03:00:28 +00:00
committed by GitHub
parent e75ef34591
commit eabe9f117a
107 changed files with 1357 additions and 291 deletions
+1 -1
View File
@@ -179,7 +179,7 @@ static auto ExtendImpl(Context& context, Parse::NodeId extend_node,
parent_scope.set_has_error();
return;
}
if (!context.TryToDefineType(constraint_id, [&] {
if (!context.TryToDefineType(constraint_id, node_id, [&] {
CARBON_DIAGNOSTIC(
ExtendUndefinedInterface, Error,
"`extend impl` requires a definition for facet type {0}",