From 87fc05750beff33dbf083c2dcb0682814ee697a3 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 17 Mar 2026 13:31:20 -0400 Subject: [PATCH] Test that a named constraint can't be used inside its definition through an alias to its name (#6922) We only want to allow using the named constraint through `Self`, as proposed in #6902. --- .../check/testdata/named_constraint/require.carbon | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/toolchain/check/testdata/named_constraint/require.carbon b/toolchain/check/testdata/named_constraint/require.carbon index e317faa308e3..11bc4af5e64c 100644 --- a/toolchain/check/testdata/named_constraint/require.carbon +++ b/toolchain/check/testdata/named_constraint/require.carbon @@ -183,6 +183,20 @@ constraint Z { require impls Z; } +// --- fail_require_impls_incomplete_self_through_alias.carbon +library "[[@TEST_NAME]]"; + +constraint Z; + +alias Y = Z; +constraint Z { + // CHECK:STDERR: fail_require_impls_incomplete_self_through_alias.carbon:[[@LINE+4]]:17: error: facet type in `require` declaration refers to the named constraint `Z` from within its definition [RequireImplsReferenceCycle] + // CHECK:STDERR: require impls Y; + // CHECK:STDERR: ^ + // CHECK:STDERR: + require impls Y; +} + // --- fail_require_impls_incomplete_self_forward_declared.carbon library "[[@TEST_NAME]]";