diff options
author | Younan Zhang <zyn7109@gmail.com> | 2024-04-05 11:09:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-05 11:09:33 +0800 |
commit | 843cc474faefad1d639f4c44c1cf3ad7dbda76c8 (patch) | |
tree | 3ba3400da0d4d3da08b169f457c10e19f085e9c0 /llvm/lib/Bitcode | |
parent | ff1e72d68d1224271801ff5192a8c14fbd3be83b (diff) | |
download | llvm-843cc474faefad1d639f4c44c1cf3ad7dbda76c8.zip llvm-843cc474faefad1d639f4c44c1cf3ad7dbda76c8.tar.gz llvm-843cc474faefad1d639f4c44c1cf3ad7dbda76c8.tar.bz2 |
[Clang][Sema] Fix the lambda call expression inside of a type alias declaration (#82310)
This patch attempts to fix the lambda call expression inside of a type
alias declaration from two aspects:
1. Defer the lambda call expression building until after we have
sufficient template arguments. This avoids the overeager (and often
wrong) semantic checking before the type alias instantiation.
2. Properly obtain template arguments involving a template type alias
for constraint checking.
It is unfortunate that a `TypeAliasTemplateDecl` (or a `TypeAliasDecl`)
is never a `DeclContext`, nor does it have an associated specialization
Decl from which we could collect these template arguments. Thus, I added
a new CodeSynthesisContext to record template arguments for alias
declarations.
Fixes https://github.com/llvm/llvm-project/issues/70601
Fixes https://github.com/llvm/llvm-project/issues/76674
Fixes https://github.com/llvm/llvm-project/issues/79555
Fixes https://github.com/llvm/llvm-project/issues/81145
Fixes https://github.com/llvm/llvm-project/issues/82104
Note that this doesn't involve the fix for
https://github.com/llvm/llvm-project/issues/28461. That seems different,
and I'd like to leave it as a follow-up.
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions