Commit 583ca47
committed
[Macros] Share storage between linked
Sometimes we build a `MacroExpansionDecl` from a `MacroExpansionExpr`.
Sometimes we do it the other way. In both cases, we risk the two
copies of must-by-shared data (macro arguments, resolved macro
reference, etc.) getting out-of-sync.
Instead, share the storage between the two representations when we
create one from the other, so that they cannot get out-of-sync. This
allows us to eliminate the extremely-dodgy `cacheOutput` call earlier.MacroExpansion(Decl|Expr).1 parent 82de47c commit 583ca47
File tree
6 files changed
+110
-84
lines changed- include/swift/AST
- lib
- AST
- Sema
6 files changed
+110
-84
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8538 | 8538 | | |
8539 | 8539 | | |
8540 | 8540 | | |
8541 | | - | |
8542 | | - | |
| 8541 | + | |
| 8542 | + | |
| 8543 | + | |
| 8544 | + | |
| 8545 | + | |
| 8546 | + | |
| 8547 | + | |
8543 | 8548 | | |
8544 | 8549 | | |
8545 | 8550 | | |
| |||
8549 | 8554 | | |
8550 | 8555 | | |
8551 | 8556 | | |
| 8557 | + | |
| 8558 | + | |
| 8559 | + | |
| 8560 | + | |
| 8561 | + | |
| 8562 | + | |
| 8563 | + | |
| 8564 | + | |
| 8565 | + | |
| 8566 | + | |
| 8567 | + | |
| 8568 | + | |
| 8569 | + | |
| 8570 | + | |
8552 | 8571 | | |
8553 | 8572 | | |
8554 | 8573 | | |
| 8574 | + | |
| 8575 | + | |
8555 | 8576 | | |
8556 | 8577 | | |
8557 | 8578 | | |
8558 | 8579 | | |
8559 | 8580 | | |
8560 | 8581 | | |
8561 | 8582 | | |
8562 | | - | |
| 8583 | + | |
| 8584 | + | |
| 8585 | + | |
8563 | 8586 | | |
8564 | 8587 | | |
8565 | | - | |
| 8588 | + | |
8566 | 8589 | | |
8567 | 8590 | | |
8568 | 8591 | | |
8569 | | - | |
8570 | | - | |
8571 | | - | |
8572 | | - | |
8573 | | - | |
8574 | | - | |
| 8592 | + | |
| 8593 | + | |
| 8594 | + | |
| 8595 | + | |
| 8596 | + | |
| 8597 | + | |
8575 | 8598 | | |
8576 | 8599 | | |
8577 | | - | |
8578 | | - | |
| 8600 | + | |
| 8601 | + | |
| 8602 | + | |
| 8603 | + | |
8579 | 8604 | | |
8580 | 8605 | | |
8581 | 8606 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6189 | 6189 | | |
6190 | 6190 | | |
6191 | 6191 | | |
6192 | | - | |
6193 | | - | |
6194 | | - | |
6195 | | - | |
6196 | | - | |
6197 | | - | |
| 6192 | + | |
6198 | 6193 | | |
6199 | 6194 | | |
6200 | 6195 | | |
6201 | 6196 | | |
6202 | | - | |
6203 | | - | |
6204 | | - | |
6205 | 6197 | | |
6206 | 6198 | | |
6207 | 6199 | | |
| 6200 | + | |
| 6201 | + | |
| 6202 | + | |
| 6203 | + | |
| 6204 | + | |
| 6205 | + | |
| 6206 | + | |
| 6207 | + | |
| 6208 | + | |
| 6209 | + | |
6208 | 6210 | | |
6209 | 6211 | | |
6210 | 6212 | | |
| |||
6214 | 6216 | | |
6215 | 6217 | | |
6216 | 6218 | | |
6217 | | - | |
6218 | | - | |
6219 | | - | |
6220 | | - | |
6221 | | - | |
6222 | | - | |
6223 | | - | |
6224 | | - | |
| 6219 | + | |
6225 | 6220 | | |
6226 | | - | |
6227 | | - | |
6228 | | - | |
6229 | | - | |
6230 | | - | |
6231 | | - | |
6232 | | - | |
6233 | | - | |
6234 | | - | |
6235 | | - | |
6236 | | - | |
| 6221 | + | |
| 6222 | + | |
6237 | 6223 | | |
6238 | 6224 | | |
6239 | 6225 | | |
6240 | 6226 | | |
6241 | | - | |
| 6227 | + | |
6242 | 6228 | | |
6243 | 6229 | | |
6244 | | - | |
| 6230 | + | |
6245 | 6231 | | |
6246 | 6232 | | |
6247 | | - | |
6248 | | - | |
| 6233 | + | |
| 6234 | + | |
6249 | 6235 | | |
6250 | 6236 | | |
6251 | 6237 | | |
6252 | | - | |
| 6238 | + | |
6253 | 6239 | | |
6254 | | - | |
6255 | | - | |
| 6240 | + | |
| 6241 | + | |
6256 | 6242 | | |
6257 | 6243 | | |
6258 | 6244 | | |
| |||
6275 | 6261 | | |
6276 | 6262 | | |
6277 | 6263 | | |
| 6264 | + | |
| 6265 | + | |
6278 | 6266 | | |
6279 | 6267 | | |
6280 | | - | |
| 6268 | + | |
6281 | 6269 | | |
6282 | | - | |
6283 | 6270 | | |
6284 | 6271 | | |
6285 | 6272 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10335 | 10335 | | |
10336 | 10336 | | |
10337 | 10337 | | |
| 10338 | + | |
| 10339 | + | |
| 10340 | + | |
| 10341 | + | |
| 10342 | + | |
| 10343 | + | |
10338 | 10344 | | |
10339 | 10345 | | |
10340 | 10346 | | |
10341 | 10347 | | |
10342 | | - | |
10343 | | - | |
10344 | | - | |
10345 | | - | |
10346 | | - | |
10347 | | - | |
10348 | | - | |
| 10348 | + | |
| 10349 | + | |
| 10350 | + | |
| 10351 | + | |
| 10352 | + | |
| 10353 | + | |
| 10354 | + | |
| 10355 | + | |
10349 | 10356 | | |
10350 | 10357 | | |
10351 | 10358 | | |
10352 | 10359 | | |
10353 | 10360 | | |
10354 | | - | |
| 10361 | + | |
10355 | 10362 | | |
10356 | | - | |
10357 | | - | |
| 10363 | + | |
| 10364 | + | |
10358 | 10365 | | |
10359 | | - | |
| 10366 | + | |
10360 | 10367 | | |
10361 | | - | |
| 10368 | + | |
10362 | 10369 | | |
10363 | 10370 | | |
10364 | 10371 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2716 | 2716 | | |
2717 | 2717 | | |
2718 | 2718 | | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
2719 | 2737 | | |
2720 | 2738 | | |
2721 | | - | |
2722 | | - | |
2723 | | - | |
2724 | | - | |
| 2739 | + | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
2725 | 2743 | | |
2726 | | - | |
| 2744 | + | |
2727 | 2745 | | |
2728 | | - | |
| 2746 | + | |
2729 | 2747 | | |
2730 | 2748 | | |
2731 | 2749 | | |
| |||
2745 | 2763 | | |
2746 | 2764 | | |
2747 | 2765 | | |
2748 | | - | |
| 2766 | + | |
2749 | 2767 | | |
2750 | 2768 | | |
2751 | 2769 | | |
2752 | | - | |
2753 | | - | |
2754 | | - | |
| 2770 | + | |
| 2771 | + | |
2755 | 2772 | | |
2756 | 2773 | | |
2757 | 2774 | | |
2758 | 2775 | | |
2759 | 2776 | | |
2760 | 2777 | | |
2761 | | - | |
2762 | | - | |
2763 | | - | |
2764 | | - | |
2765 | 2778 | | |
2766 | 2779 | | |
2767 | 2780 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5398 | 5398 | | |
5399 | 5399 | | |
5400 | 5400 | | |
5401 | | - | |
5402 | | - | |
5403 | | - | |
5404 | | - | |
5405 | | - | |
5406 | | - | |
5407 | | - | |
5408 | | - | |
5409 | | - | |
5410 | 5401 | | |
5411 | 5402 | | |
5412 | 5403 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1504 | 1504 | | |
1505 | 1505 | | |
1506 | 1506 | | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
1507 | 1510 | | |
1508 | 1511 | | |
1509 | 1512 | | |
| |||
0 commit comments