Pavel Yaskevich
2ea3014ae9
[AST] PackExpansionMatcher/NFC: Templatarize TypeListPackMatcher
2023-03-24 10:58:49 -07:00
Pavel Yaskevich
433cbfcd62
[AST] PackExpansionMatcher: use common prefix/suffix algorithm for tuple matching
2023-03-23 15:07:28 -07:00
Pavel Yaskevich
ee1f16f754
[AST] NFC: Unify implementation for pack expansion matching for type lists
2023-03-23 15:07:28 -07:00
Pavel Yaskevich
be6b05b305
[PackExpansionMatcher] Adjust ParamPackMatcher to account for labels
...
First step in preparation to unify different matchers which
is effectively no-op because function parameters do not have
labels.
- Common prefix/suffix should account for presence of labels
- Labeled parameters cannot appear in the region absorbed by
a pack expansion type.
2023-03-23 15:06:21 -07:00
Slava Pestov
b122977671
AST: Record both LHS and RHS index in PackExpansionMatcher.cpp
2022-12-01 15:25:20 -05:00
Slava Pestov
914e0c490c
AST: Small cleanup for PackExpansionMatcher
2022-11-29 22:15:55 -05:00
Slava Pestov
2dd6d24834
Sema: Tweak PackMatchers to preserve PackExpansionType on both sides
2022-10-27 13:46:58 -04:00
Holly Borla
5584752b3e
[ConstraintSystem] Implement value parameter pack forwarding.
2022-10-22 13:41:48 -07:00
Slava Pestov
cbce4a52ca
Sema: Support PackExpansionTypes in matchPackTypes()
2022-10-21 22:17:38 -04:00
Slava Pestov
73e478871c
Sema: Tweak PackExpansionMatcher to respect invariants
...
Don't emit a match with a PackExpansionType on one side and a
PackType on the other; always unwrap the PackExpansionType
to get its underlying pattern.
2022-10-17 23:23:09 -04:00
Slava Pestov
a000b78eac
AST: Introduce ParamPackMatcher, for structural matching of function types
2022-10-16 21:37:25 -04:00
Slava Pestov
9d16b821a8
AST: Move Sema's TuplePackMatcher to AST
...
I'm also going to use it in TypeMatcher, for the Requirement Machine's
same-type requirement desugaring.
2022-10-16 21:37:25 -04:00