llvm-project/libcxx
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
..
benchmarks [libc++] Disallow running the libc++ benchmarks in standalone builds 2021-11-11 14:13:36 -05:00
cmake [CMake] Cache the compiler-rt library search results 2021-10-27 17:53:03 -07:00
docs [libc++] Implement file_clock::{to,from}_sys 2021-11-11 14:17:02 -05:00
include [libc++] Add missing _LIBCPP_HIDE_FROM_ABI to __rewrap_iter 2021-11-15 10:10:33 -05:00
lib Revert "[libc++] Always define a key function for std::bad_function_call in the dylib" 2021-11-08 00:44:47 -08:00
src [libc++] Implement P2186R2 (Remove Garbage Collection) 2021-11-11 19:03:00 +01:00
test [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
utils [libc++][NFC] Resolve Python 2 FIXME 2021-11-12 13:55:22 -05:00
.clang-format [libc++] Update clang-format to C++20. 2021-10-30 12:50:57 +02:00
.gitignore [libcxx] Fix .gitignore to not exclude test directories 2020-03-25 17:52:23 -07:00
CMakeLists.txt [libc++][NFC] Resolve Python 2 FIXME 2021-11-12 13:55:22 -05:00
CREDITS.TXT [NFC] Add contributor name to CREDITS.TXT 2021-09-29 14:48:32 -04:00
LICENSE.TXT
TODO.TXT [libc++] Disallow volatile types in std::allocator 2021-09-22 11:47:38 -04:00
appveyor-reqs-install.cmd
appveyor.yml