llvm-project/clang/test/AST
Saar Raz b481f02814 [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).

Resubmit after fixing MSAN failures caused by incomplete initialization of AutoTypeLocs in TypeSpecLocFiller.

Differential Revision: https://reviews.llvm.org/D65042
2020-01-23 19:39:43 +02:00
..
Inputs Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
Interp [ConstExprPreter] Removed the flag forcing the use of the interpreter 2019-11-27 20:07:19 +00:00
address_space_attribute.cpp [Sema] Fix Modified Type in address_space AttributedType 2019-01-24 00:11:35 +00:00
ast-dump-aarch64-sve-types.c Add SVE opaque built-in types 2019-08-09 08:52:54 +00:00
ast-dump-arm-attr.c
ast-dump-array.cpp Extend test for DependentSizedArrayType 2018-12-04 09:53:36 +00:00
ast-dump-attr.cpp Add lifetime categories attributes 2019-07-25 17:50:51 +00:00
ast-dump-attr.m
ast-dump-c-attr.c
ast-dump-color.cpp Revert r372325 - Reverting r372323 because it broke color tests on Linux. 2019-09-19 15:10:51 +00:00
ast-dump-comment-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
ast-dump-comment.cpp [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
ast-dump-decl-context-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-decl-json.c Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-decl-json.m Add a missing triple in ast-dump-decl-json.m 2019-11-15 20:15:00 +00:00
ast-dump-decl-stmts.cpp
ast-dump-decl.c Added test cases for dumping variadic-like functions; NFC. 2019-01-16 16:12:30 +00:00
ast-dump-decl.cpp [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
ast-dump-decl.m [ASTDump] Mark variadic declarations with a tag instead of child node 2019-01-18 21:38:30 +00:00
ast-dump-decl.mm [ASTDump] Mark BlockDecls which capture this with a tag 2019-01-18 21:55:24 +00:00
ast-dump-enum-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
ast-dump-expr-json.c Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-expr-json.cpp Refactor CompareReferenceRelationship and its callers in preparation for 2019-12-18 14:05:57 -08:00
ast-dump-expr-json.m Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-expr.c Add an explicit triple to this test to fix failing test bots. 2018-12-10 19:18:11 +00:00
ast-dump-expr.cpp Factor out commonality between variable capture initialization and 2019-06-02 04:00:43 +00:00
ast-dump-file-line-json.c Correcting the offsets within the test to fix the bots. 2019-12-03 13:21:35 -05:00
ast-dump-funcs-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-funcs.cpp Added test cases for dumping variadic-like functions; NFC. 2019-01-16 16:12:30 +00:00
ast-dump-hip-pinned-shadow.cu [HIP] Support attribute hip_pinned_shadow 2019-06-26 03:47:37 +00:00
ast-dump-if-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-invalid.cpp
ast-dump-lookups.cpp
ast-dump-macro-json.c Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-msp430-attr.c
ast-dump-namespace-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
ast-dump-openmp-atomic.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-barrier.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-cancel.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-cancellation-point.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-critical.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-distribute-parallel-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-distribute-parallel-for.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-distribute-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-distribute.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-flush.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-for.c Add script to update OpenMP -ast-dump test expectations, and use it to 2019-06-02 04:00:38 +00:00
ast-dump-openmp-master.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-ordered.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-parallel-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-parallel-for.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-parallel-master-XFAIL.c [AST] Disable ast-dump-openmp-parallel-master-XFAIL.c test 2019-03-20 17:14:49 +00:00
ast-dump-openmp-parallel-sections.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-parallel.c Add script to update OpenMP -ast-dump test expectations, and use it to 2019-06-02 04:00:38 +00:00
ast-dump-openmp-section.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-sections.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-single.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-data.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-enter-data.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-exit-data.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-parallel-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-parallel-for.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-parallel.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-teams-distribute-parallel-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-teams-distribute-parallel-for.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-teams-distribute-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-teams-distribute.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-teams.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target-update.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-target.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-task.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-taskgroup.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-taskloop-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-taskloop.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-taskwait.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-taskyield.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-teams-distribute-parallel-for-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-teams-distribute-parallel-for.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-teams-distribute-simd.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-teams-distribute.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-openmp-teams.c [OpenMP] Set pragma start loc to `#pragma` loc 2019-05-28 19:27:19 +00:00
ast-dump-pipe.cl
ast-dump-record-definition-data-json.cpp [Concepts] Placeholder constraints and abbreviated templates 2020-01-23 19:39:43 +02:00
ast-dump-record-definition-data.cpp Adding tests for -ast-dump; NFC. 2018-12-04 21:50:08 +00:00
ast-dump-records-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-records.c
ast-dump-records.cpp [ASTDump] Add is_anonymous to VisitCXXRecordDecl 2019-08-12 17:07:49 +00:00
ast-dump-special-member-functions.cpp Adding tests for -ast-dump; NFC. 2018-12-04 21:50:08 +00:00
ast-dump-stmt-json.c Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-stmt-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-stmt-json.m Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-stmt.c Ignore trailing NullStmts in StmtExprs for GCC compatibility. 2019-07-09 15:02:07 +00:00
ast-dump-stmt.cpp [ASTDump] Add utility for dumping a label with child nodes 2019-01-11 19:11:17 +00:00
ast-dump-stmt.m
ast-dump-template-decls-json.cpp Include the mangled name in -ast-dump=json 2019-11-15 12:52:56 +00:00
ast-dump-template-decls.cpp [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
ast-dump-templates.cpp
ast-dump-temporaries-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
ast-dump-types-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
ast-dump-undeserialized.cpp Move decl context dumping to TextNodeDumper 2019-01-19 09:05:55 +00:00
ast-dump-wchar.cpp [Sema] Make string literal init an rvalue. 2019-02-08 21:18:46 +00:00
ast-print-attr.c Disallow an empty string literal in an asm label 2020-01-08 08:38:02 -05:00
ast-print-bool.c
ast-print-char-literal.cpp
ast-print-enum-decl.c
ast-print-no-sanitize.cpp Do not use the incorrect attribute spelling list index when translating a no_sanitize_foo attribute into a no_sanitize("foo") attribute. 2019-05-21 17:24:49 +00:00
ast-print-objc-property.m Clean up ObjCPropertyDecl printing 2019-04-08 19:52:45 +00:00
ast-print-objectivec.m
ast-print-out-of-line-func.cpp
ast-print-pragmas.cpp [Clang] New loop pragma vectorize_predicate 2019-07-25 07:33:13 +00:00
ast-print-record-decl.c
ast-printer-lambda.cpp [clang] fixing -ast-print for variadic parameter pack in lambda capture 2019-05-05 12:35:12 +00:00
atomic-expr.cpp [Sema] Fix the atomic expr rebuilding order. 2019-09-23 18:48:06 +00:00
attr-print-emit.cpp
attr-target-ast.c
auto-pragma.cpp
bool-type.m
builtins-arm-strex-rettype.c
c-casts.c
category-attribute.m
coroutine-source-location-crash.cpp [clang] Do not read from 'test/SemaCXX/Inputs' inside 'test/AST' 2018-12-03 11:26:35 +00:00
dump.cpp [OPENMP]Use copy constructors instead of assignment operators in declare 2019-11-12 13:13:37 -05:00
finally-msvc.m
fixed_point.c
fixed_point_to_string.c
float16.cpp [ASTDump] Add a flag indicating whether a CXXThisExpr is implicit 2019-02-03 18:20:27 +00:00
foreachtemplatized.mm
function-alias.cpp Look through typedefs in getFunctionTypeWithExceptionSpec 2019-02-13 09:39:17 +00:00
gen_ast_dump_json_test.py Switch to opening the temp file in binary mode 2019-12-03 15:31:46 -05:00
implicit-cast-dump.c
language_address_space_attribute.cpp [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
multistep-explicit-cast-json.c Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
multistep-explicit-cast-json.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
multistep-explicit-cast.c
multistep-explicit-cast.cpp
objc-default-ctor-init.mm
pr43983.cpp Apply the alignment specifier attribute to anonymous unions and structs. 2019-12-20 14:42:37 -05:00
pragma-attribute-cxx-subject-match-rules.cpp
pragma-attribute-objc-subject-match-rules.m
property-atomic-bool.m
rdr6094103-unordered-compare-promote.c
sourceranges.cpp Include leading attributes in DeclStmt's SourceRange 2019-10-17 11:20:21 +00:00
template-implicit-vars.cpp
variadic-promotion.c