@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const
MultiLevelTemplateArgumentList ) {
TemplateInstantiator Instantiator(*this, TemplateArgs,
SourceLocation(),
DeclarationName());
+
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const
MultiLevelTemplateArgumentList ) {
TemplateInstantiator Instantiator(*this, TemplateArgs,
SourceLocation(),
DeclarationName());
+
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const
MultiLevelTemplateArgumentList ) {
TemplateInstantiator Instantiator(*this, TemplateArgs,
SourceLocation(),
DeclarationName());
+
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const
MultiLevelTemplateArgumentList ) {
TemplateInstantiator Instantiator(*this, TemplateArgs,
SourceLocation(),
DeclarationName());
+
@@ -504,3 +504,24 @@ struct bar {
bar x;
} // namespace GH61763
+
+namespace GH74314 {
+template constexpr bool is_same_v = __is_same(T, U);
+template constexpr bool is_not_same_v = !__is_same(T, U);
+
+template
+concept something_interesting = requires {
+ true;
+
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const
MultiLevelTemplateArgumentList ) {
TemplateInstantiator Instantiator(*this, TemplateArgs,
SourceLocation(),
DeclarationName());
+
ilya-biryukov wrote:
@cor3ntin I have tried getting some lambda examples, but because lambda
produces a unique type every time, I don't see how I can get a matching
declaration with a lambda inside `requires` clause.
https://github.com/llvm/llvm-project/pull/74490
llvmbot wrote:
@llvm/pr-subscribers-clang
Author: Ilya Biryukov (ilya-biryukov)
Changes
... and only look at equivalence of substituted expressions, not results of
constraint satisfaction.
Fixes #74314.
There is already some existing machinery for that in `TemplateInstantiator` and
https://github.com/ilya-biryukov created
https://github.com/llvm/llvm-project/pull/74490
... and only look at equivalence of substituted expressions, not results of
constraint satisfaction.
Fixes #74314.
There is already some existing machinery for that in `TemplateInstantiator` and
`Sema`