Commit ccd2606
authored
[clang] fix getTemplateInstantiationArgs (llvm#199528)
This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the
template context of out-of-line definitions.
This greatly simplifies the signature of that function, by removing a
bunch of workarounds, and simpliffying a couple that weren't removed
yet.
Since this now relies on qualifiers and template parameter lists, this
patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.
Also makes the explicit specialization AST nodes stop abusing the
template parameter lists by storing it's own template parameter list,
creating a dedicated field for them, similar to partial specializations.
Fixes llvm#1013301 parent f9ae788 commit ccd2606
58 files changed
Lines changed: 1454 additions & 1714 deletions
File tree
- clang-tools-extra
- clang-tidy/misc
- clangd
- refactor/tweaks
- clang
- docs
- include/clang
- ASTMatchers
- AST
- Basic
- Sema
- lib
- ASTMatchers/Dynamic
- AST
- Analysis
- CodeGen
- Index
- InstallAPI
- Parse
- Sema
- Serialization
- StaticAnalyzer/Core
- Tooling/Syntax
- test
- AST
- CXX
- basic/basic.link
- temp
- temp.arg/temp.arg.template
- temp.constr/temp.constr.decl
- temp.decls/temp.spec.partial/temp.spec.partial.member
- temp.spec/temp.expl.spec
- SemaTemplate
- Templight
- tools/libclang
- unittests
- ASTMatchers
- AST
- lldb/source/Plugins
- Language/CPlusPlus
- TypeSystem/Clang
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
590 | 590 | | |
591 | 591 | | |
592 | 592 | | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
601 | | - | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
605 | 605 | | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
615 | 615 | | |
616 | 616 | | |
617 | 617 | | |
| |||
625 | 625 | | |
626 | 626 | | |
627 | 627 | | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
628 | 631 | | |
629 | 632 | | |
630 | 633 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
367 | | - | |
| 367 | + | |
368 | 368 | | |
369 | 369 | | |
370 | 370 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
687 | 687 | | |
688 | 688 | | |
689 | 689 | | |
| 690 | + | |
690 | 691 | | |
691 | 692 | | |
692 | 693 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2122 | 2122 | | |
2123 | 2123 | | |
2124 | 2124 | | |
2125 | | - | |
2126 | | - | |
2127 | | - | |
2128 | | - | |
2129 | | - | |
2130 | | - | |
2131 | | - | |
2132 | | - | |
2133 | | - | |
2134 | | - | |
2135 | | - | |
2136 | | - | |
2137 | | - | |
2138 | | - | |
2139 | | - | |
2140 | | - | |
2141 | | - | |
2142 | | - | |
2143 | | - | |
2144 | | - | |
2145 | | - | |
2146 | | - | |
2147 | | - | |
2148 | | - | |
2149 | | - | |
2150 | | - | |
2151 | | - | |
2152 | | - | |
2153 | 2125 | | |
2154 | 2126 | | |
2155 | 2127 | | |
| |||
2245 | 2217 | | |
2246 | 2218 | | |
2247 | 2219 | | |
| 2220 | + | |
| 2221 | + | |
2248 | 2222 | | |
2249 | 2223 | | |
2250 | 2224 | | |
| |||
3070 | 3044 | | |
3071 | 3045 | | |
3072 | 3046 | | |
| 3047 | + | |
| 3048 | + | |
| 3049 | + | |
3073 | 3050 | | |
3074 | 3051 | | |
3075 | 3052 | | |
| 3053 | + | |
| 3054 | + | |
3076 | 3055 | | |
3077 | 3056 | | |
3078 | 3057 | | |
| |||
3085 | 3064 | | |
3086 | 3065 | | |
3087 | 3066 | | |
| 3067 | + | |
| 3068 | + | |
| 3069 | + | |
3088 | 3070 | | |
3089 | 3071 | | |
3090 | 3072 | | |
3091 | 3073 | | |
| 3074 | + | |
| 3075 | + | |
| 3076 | + | |
| 3077 | + | |
3092 | 3078 | | |
3093 | | - | |
3094 | | - | |
3095 | | - | |
3096 | | - | |
3097 | | - | |
3098 | | - | |
3099 | | - | |
3100 | | - | |
3101 | | - | |
| 3079 | + | |
| 3080 | + | |
| 3081 | + | |
| 3082 | + | |
| 3083 | + | |
| 3084 | + | |
3102 | 3085 | | |
3103 | 3086 | | |
3104 | 3087 | | |
3105 | 3088 | | |
3106 | 3089 | | |
| 3090 | + | |
3107 | 3091 | | |
3108 | 3092 | | |
3109 | 3093 | | |
| |||
0 commit comments