Require all impls constraints in impl as to be satisfied (#7531)

We checked that requirements inside the impl-as target interface were
satisfied. But we also need to check that requirements coming from the
constraint facet type, or named constraints that it targets, are
satisfied.
This commit is contained in:
Dana Jansens
2026-07-21 19:31:54 +00:00
committed by GitHub
parent 2e61685658
commit 63757d281e
9 changed files with 375 additions and 133 deletions
+1 -2
View File
@@ -421,8 +421,6 @@ auto HandleParseNode(Context& context, Parse::ImplDefinitionStartId node_id)
auto [impl_id, impl_decl_id] = BuildImplDecl(context, node_id, true);
auto& impl = context.impls().Get(impl_id);
CheckRequireDeclsSatisfied(context, node_id, impl);
impl.scope_id =
context.name_scopes().Add(impl_decl_id, SemIR::NameId::None,
context.decl_name_stack().PeekParentScopeId());
@@ -434,6 +432,7 @@ auto HandleParseNode(Context& context, Parse::ImplDefinitionStartId node_id)
context.generics().GetSelfSpecific(impl.generic_id));
StartGenericDefinition(context, impl.generic_id);
ImplWitnessStartDefinition(context, impl);
CheckRequireDeclsSatisfied(context, node_id, impl);
context.inst_block_stack().Push();
context.node_stack().Push(node_id, impl_id);