llvm-project/clang/lib
Matheus Izvekov 4d8fff477e
[clang] retain type sugar in auto / template argument deduction
This implements the following changes:
* AutoType retains sugared deduced-as-type.
* Template argument deduction machinery analyses the sugared type all the way
down. It would previously lose the sugar on first recursion.
* Undeduced AutoType will be properly canonicalized, including the constraint
template arguments.
* Remove the decltype node created from the decltype(auto) deduction.

As a result, we start seeing sugared types in a lot more test cases,
including some which showed very unfriendly `type-parameter-*-*` types.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D110216
2021-11-13 03:35:22 +01:00
..
APINotes [clang][APINotes] Fix -Wunused-function warning (NFC) 2021-04-01 09:52:43 +08:00
ARCMigrate [clang] [Objective C] Inclusive language: use objcmt-allowlist-dir-path=<arg> instead of objcmt-white-list-dir-path=<arg> 2021-11-05 12:27:05 -04:00
AST [clang] retain type sugar in auto / template argument deduction 2021-11-13 03:35:22 +01:00
ASTMatchers [ASTMatcher] Provide a definition for the lambdaCapture matcher 2021-11-08 20:26:37 +01:00
Analysis [AST, Analysis] Use llvm::reverse (NFC) 2021-11-07 09:53:14 -08:00
Basic [clang] GCC directive extension extension: Hash NNN lines 2021-11-09 07:31:03 -08:00
CodeGen [clang][objc][codegen] Skip emitting ObjC category metadata when the 2021-11-12 16:21:21 -08:00
CrossTU PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
DirectoryWatcher [clang] [DirectoryWatcher] Remove leading \\?\ from GetFinalPathNameByHandleW 2021-11-08 22:21:30 +02:00
Driver [clang] Inclusive language: change instances of blacklist/whitelist to allowlist/ignorelist 2021-11-12 15:46:16 +00:00
Edit [clang] Use llvm::is_contained (NFC) 2021-10-13 20:41:55 -07:00
Format [clang-format] Refactor SpaceBeforeParens to add options 2021-11-09 21:51:45 +01:00
Frontend [clang] Inclusive language: change instances of blacklist/whitelist to allowlist/ignorelist 2021-11-12 15:46:16 +00:00
FrontendTool [clang] Add plugin ActionType to run command line plugin before main action 2021-10-20 08:58:20 -07:00
Headers headers: optionalise some generated resource headers 2021-11-09 22:30:29 +00:00
Index [clang] Visit enum base specifiers in libIndex 2021-10-25 13:16:14 +02:00
IndexSerialization
Interpreter [clang-repl] Allow Interpreter::getSymbolAddress to take a mangled name. 2021-11-10 12:52:05 +00:00
Lex [clang] GCC directive extension extension: Hash NNN lines 2021-11-09 07:31:03 -08:00
Parse Initial parsing/sema for 'align' clause 2021-11-09 07:34:18 -05:00
Rewrite [clang] Use StringRef::contains (NFC) 2021-10-21 08:58:19 -07:00
Sema [clang] retain type sugar in auto / template argument deduction 2021-11-13 03:35:22 +01:00
Serialization Initial parsing/sema for 'align' clause 2021-11-09 07:34:18 -05:00
StaticAnalyzer [analyzer][solver] Remove reference to RangedConstraintManager 2021-11-12 11:44:49 +01:00
Testing
Tooling [clang] Use llvm::{count,count_if,find_if,all_of,none_of} (NFC) 2021-10-25 09:14:45 -07:00
CMakeLists.txt [clang-repl] Recommit "Land initial infrastructure for incremental parsing" 2021-05-13 06:30:29 +00:00