================ @@ -599,3 +599,39 @@ template <class DerT> unsigned long DerivedCollection<DerTs...>::index() {} } // namespace GH72557 + +namespace GH102320 { + +template <class, class> +concept Constrained = true; + +template <class T> class C { + template <Constrained<T>> class D; + template <class U> + requires Constrained<T, U> + class E; +}; + +template <class T> template <Constrained<T>> class C<T>::D {}; + +template <class T> +template <class U> + requires Constrained<T, U> +class C<T>::E {}; + +#if 0 +// FIXME: Is it conforming? Only Clang rejects it in every released version. +template <> +template <Constrained<int> T> +class C<int>::D<T> {}; +#endif + ---------------- jcsxky wrote:
I don't think we need this regression. As pointed in this [comment](https://github.com/llvm/llvm-project/pull/102554#discussion_r1710667937), we should not transform `ConceptSpecializationExpr` which makes the depth incorrect. I tested locally and my origin approach also makes sense to this case. https://github.com/llvm/llvm-project/pull/102587 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits