[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Erich Keane via cfe-commits
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const MultiLevelTemplateArgumentList ) { TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(), DeclarationName()); +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Ilya Biryukov via cfe-commits
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const MultiLevelTemplateArgumentList ) { TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(), DeclarationName()); +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Erich Keane via cfe-commits
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const MultiLevelTemplateArgumentList ) { TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(), DeclarationName()); +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Ilya Biryukov via cfe-commits
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const MultiLevelTemplateArgumentList ) { TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(), DeclarationName()); +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Erich Keane via cfe-commits
@@ -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; +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Erich Keane via cfe-commits
@@ -4077,6 +4084,7 @@ Sema::SubstExpr(Expr *E, const MultiLevelTemplateArgumentList ) { TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(), DeclarationName()); +

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Ilya Biryukov via cfe-commits
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

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread via cfe-commits
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

[clang] [Sema] When checking for constraint equivalence, do not calculate satisfaction (PR #74490)

2023-12-05 Thread Ilya Biryukov via cfe-commits
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`