llvm-project
e9972deb - [Clang] Normalize constraints before checking for satisfaction (#161671)

Commit
173 days ago
[Clang] Normalize constraints before checking for satisfaction (#161671) In the standard, constraint satisfaction checking is done on the normalized form of a constraint. Clang instead substitutes on the non-normalized form, which causes us to report substitution failures in template arguments or concept ids, which is non-conforming but unavoidable without a parameter mapping This patch normalizes before satisfaction checking. However, we preserve concept-id nodes in the normalized form, solely for diagnostics purposes. This addresses https://github.com/llvm/llvm-project/issues/61811 and related concepts conformance bugs, ideally to make the remaining implementation of concept template parameters easier Fixes https://github.com/llvm/llvm-project/issues/135190 Fixes https://github.com/llvm/llvm-project/issues/61811 Co-authored-by: Younan Zhang [zyn7109@gmail.com](mailto:zyn7109@gmail.com) --------- Co-authored-by: Younan Zhang <zyn7109@gmail.com>
Author
Parents
Loading