llvm-project/clang-tools-extra/clang-tidy
Matheus Izvekov c9e46219f3
[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, #libc, ldionne

Differential Revision: https://reviews.llvm.org/D110216
2021-11-15 23:07:45 +01:00
..
abseil [clang-tidy] Add check for initialization of `absl::Cleanup`. 2021-11-08 15:57:32 +00:00
altera [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
android [clang-tidy] Applied clang-tidy fixes. NFC 2021-01-29 01:01:19 +01:00
boost [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
bugprone [clang-tidy] Fix `bugprone-use-after-move` check to also consider moves in constructor initializers 2021-11-15 07:41:35 +00:00
cert [clang-tidy] Add check 'cert-err33-c'. 2021-11-02 11:38:47 +01:00
concurrency [clang-tidy] Add new check 'concurrency-thread-canceltype-asynchronous' and alias 'cert-pos47-c'. 2021-02-22 12:42:20 +01:00
cppcoreguidelines [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
darwin [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
fuchsia [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
google Cleanup identifier parsing; NFC 2021-09-14 09:12:22 -04:00
hicpp [clang-tidy] Applied clang-tidy fixes. NFC 2021-01-29 01:01:19 +01:00
linuxkernel [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
llvm [clang-tidy] Fix llvm-header-guard so that it works with Windows paths 2021-11-10 18:35:57 +13:00
llvmlibc [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
misc Misleading unicode identifier detection pass 2021-11-10 10:21:27 +01:00
modernize Fix an unused variable warning 2021-11-15 15:45:43 +01:00
mpi [clang-tidy] Fix mpi checks when running multiple TUs per clang-tidy process 2021-03-25 14:38:37 +00:00
objc [llvm][clang][NFC] updates inline licence info 2021-08-11 02:48:53 +00:00
openmp [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
performance [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
plugin [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
portability [clang-tidy][NFC] Tweak some generation of diag messages 2021-02-26 19:10:25 +00:00
readability [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
tool [clang-tidy] run-clang-tidy.py: analyze unique files only 2021-11-06 19:53:18 +13:00
utils [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
zircon Remove references to the ast_type_traits namespace 2020-12-11 00:58:46 +01:00
CMakeLists.txt [clang-tidy] add concurrency module 2020-11-30 12:27:17 +03:00
ClangTidy.cpp [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
ClangTidy.h [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
ClangTidyCheck.cpp [clang-tidy] Add new case type to check variables with Hungarian notation 2021-08-01 15:22:17 -07:00
ClangTidyCheck.h [clang-tidy] Add new case type to check variables with Hungarian notation 2021-08-01 15:22:17 -07:00
ClangTidyDiagnosticConsumer.cpp [clang-tidy] Re-apply 0076957 with fix for failing ASan tests 2021-11-13 00:01:12 +13:00
ClangTidyDiagnosticConsumer.h [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
ClangTidyForceLinker.h [clang-tidy] add concurrency module 2020-11-30 12:27:17 +03:00
ClangTidyModule.cpp [clang-tidy][NFC] Use StringMap for ClangTidyCheckFactories::FacoryMap 2020-07-30 22:57:33 +01:00
ClangTidyModule.h [clang-tidy][NFC] Remove unnecessary headers 2020-12-28 15:01:51 +00:00
ClangTidyModuleRegistry.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ClangTidyOptions.cpp [clang-tidy] Applied clang-tidy fixes. NFC 2021-01-29 01:01:19 +01:00
ClangTidyOptions.h [clang-tidy] Fix lint warnings in clang-tidy source code (NFC) 2021-11-02 20:14:25 +13:00
ClangTidyProfiling.cpp [clang-tidy][NFC] Remove unnecessary headers 2020-12-28 15:01:51 +00:00
ClangTidyProfiling.h [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
ExpandModularHeadersPPCallbacks.cpp [clang] Let PPCallbacks::PragmaWarning() pass specifier as enum instead of string 2021-09-28 19:47:27 -04:00
ExpandModularHeadersPPCallbacks.h [clang] Let PPCallbacks::PragmaWarning() pass specifier as enum instead of string 2021-09-28 19:47:27 -04:00
GlobList.cpp [clang-tidy] Support globbing in NOLINT* expressions 2021-10-19 16:30:51 +00:00
GlobList.h [clang-tidy] Support globbing in NOLINT* expressions 2021-10-19 16:30:51 +00:00
add_new_check.py [clang-tidy] Fix add_new_check.py to generate correct list.rst autofix column from relative path 2021-10-05 18:09:53 +02:00
clang-tidy-config.h.cmake Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
rename_check.py Fix python 2-vs-3 issues in add_new_check.py and rename_check.py 2021-09-11 09:52:50 +02:00