summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorCorentin Jabot <corentinjabot@gmail.com>2023-07-03 19:02:24 +0200
committerCorentin Jabot <corentinjabot@gmail.com>2023-07-21 10:59:36 +0200
commitf9caa12328b265b77221fe7a310d4504673d814a (patch)
tree3ef1dce51084eb63716f2d875d5eaf1a749c3863 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parentf060f095aa68fb4b0ce54c842b9d20613891e69e (diff)
[Clang] Fix constraint checking of non-generic lambdas.
A lambda call operator can be a templated entity - and therefore have constraints while not being a function template template<class T> void f() { []() requires false { }(); } In that case, we would check the constraints of the call operator which is non-viable. However, we would find a viable candidate: the conversion operator to function pointer, and use it to perform a surrogate call. These constraints were not checked because: * We never check the constraints of surrogate functions * The lambda conversion operator has non constraints. From the wording, it is not clear what the intent is but it seems reasonable to expect the constraints of the lambda conversion operator to be checked and it is consistent with GCC and MSVC. This patch also improve the diagnostics for constraint failure on surrogate calls. Fixes #63181 Reviewed By: #clang-language-wg, aaron.ballman Differential Revision: https://reviews.llvm.org/D154368
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions