aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSaar Raz <saar@raz.email>2020-01-22 02:03:05 +0200
committerSaar Raz <saar@raz.email>2020-01-22 02:03:05 +0200
commite03ead6771fc97b11cb0c94b7f023142184ad25f (patch)
treeaa303aeaf485f3e7167d81e18a99ca6bb668d779 /clang/lib/Frontend/CompilerInvocation.cpp
parent6e73fee780839bfa95aff492864e93e79910380b (diff)
downloadllvm-e03ead6771fc97b11cb0c94b7f023142184ad25f.zip
llvm-e03ead6771fc97b11cb0c94b7f023142184ad25f.tar.gz
llvm-e03ead6771fc97b11cb0c94b7f023142184ad25f.tar.bz2
[Concepts] Placeholder constraints and abbreviated templates
This patch implements P1141R2 "Yet another approach for constrained declarations". General strategy for this patch was: - Expand AutoType to include optional type-constraint, reflecting the wording and easing the integration of constraints. - Replace autos in parameter type specifiers with invented parameters in GetTypeSpecTypeForDeclarator, using the same logic previously used for generic lambdas, now unified with abbreviated templates, by: - Tracking the template parameter lists in the Declarator object - Tracking the template parameter depth before parsing function declarators (at which point we can match template parameters against scope specifiers to know if we have an explicit template parameter list to append invented parameters to or not). - When encountering an AutoType in a parameter context we check a stack of InventedTemplateParameterInfo structures that contain the info required to create and accumulate invented template parameters (fields that were already present in LambdaScopeInfo, which now inherits from this class and is looked up when an auto is encountered in a lambda context). Differential Revision: https://reviews.llvm.org/D65042
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions