This repository was archived by the owner on May 28, 2025. It is now read-only.
Commit 4c0c5e0
committed
Auto merge of rust-lang#77271 - petrochenkov:notokenexp, r=Aaron1011
Expand `NtExpr` tokens only in key-value attributes
Implement the experiment described in rust-lang#55414 (comment)
This PR also removes some customization points and token visiting functionality from AST visitors.
Read-only visitor no longer visits tokens, mutable visitor visits tokens only when specifically enabled, mutable token visiting is restricted to its single intended use case.
I haven't changed the representation of `MacArgs::Eq` yet, but it potentially can use a `TokenTree` or a `Token` instead of `TokenStream`.
It's hard to get rid of `Nonterminal::NtExpr` there (and e.g. replace it with `ast::Expr`) due to the dual nature of key-value attributes (the value is both an expression and a token stream, depending on context), and `Nonterminal` has all the machinery for maintaining both representations in sync.
Fixes rust-lang#55414
Fixes rust-lang#43860File tree
18 files changed
+402
-134
lines changed- compiler
- rustc_ast/src
- rustc_expand/src
- mbe
- mut_visit
- rustc_resolve/src
- library/core/src/sync
- src/test/ui
- attributes
- auxiliary
- conditional-compilation
- proc-macro
- auxiliary
18 files changed
+402
-134
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
37 | 44 | | |
38 | 45 | | |
39 | 46 | | |
| |||
246 | 253 | | |
247 | 254 | | |
248 | 255 | | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | 256 | | |
266 | 257 | | |
267 | 258 | | |
| |||
375 | 366 | | |
376 | 367 | | |
377 | 368 | | |
378 | | - | |
| 369 | + | |
379 | 370 | | |
380 | 371 | | |
381 | 372 | | |
382 | | - | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
383 | 393 | | |
384 | 394 | | |
385 | 395 | | |
| |||
626 | 636 | | |
627 | 637 | | |
628 | 638 | | |
629 | | - | |
| 639 | + | |
| 640 | + | |
630 | 641 | | |
631 | 642 | | |
632 | | - | |
| 643 | + | |
633 | 644 | | |
634 | 645 | | |
635 | 646 | | |
636 | 647 | | |
637 | | - | |
| 648 | + | |
638 | 649 | | |
639 | 650 | | |
640 | 651 | | |
641 | 652 | | |
642 | | - | |
643 | | - | |
644 | | - | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
645 | 659 | | |
646 | 660 | | |
| 661 | + | |
647 | 662 | | |
648 | 663 | | |
649 | 664 | | |
650 | | - | |
| 665 | + | |
651 | 666 | | |
652 | 667 | | |
653 | 668 | | |
| |||
659 | 674 | | |
660 | 675 | | |
661 | 676 | | |
662 | | - | |
| 677 | + | |
663 | 678 | | |
664 | 679 | | |
665 | 680 | | |
666 | 681 | | |
667 | 682 | | |
668 | 683 | | |
| 684 | + | |
669 | 685 | | |
670 | 686 | | |
671 | 687 | | |
| |||
689 | 705 | | |
690 | 706 | | |
691 | 707 | | |
692 | | - | |
| 708 | + | |
693 | 709 | | |
694 | 710 | | |
695 | 711 | | |
| |||
714 | 730 | | |
715 | 731 | | |
716 | 732 | | |
717 | | - | |
| 733 | + | |
718 | 734 | | |
719 | 735 | | |
720 | 736 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
321 | 325 | | |
322 | 326 | | |
323 | 327 | | |
| |||
408 | 412 | | |
409 | 413 | | |
410 | 414 | | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
411 | 445 | | |
412 | 446 | | |
413 | 447 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
| 17 | + | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | 211 | | |
220 | 212 | | |
221 | 213 | | |
| |||
902 | 894 | | |
903 | 895 | | |
904 | 896 | | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | | - | |
912 | | - | |
913 | | - | |
914 | | - | |
915 | | - | |
916 | | - | |
917 | | - | |
918 | | - | |
919 | | - | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
920 | 911 | | |
921 | 912 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
| |||
277 | 281 | | |
278 | 282 | | |
279 | 283 | | |
280 | | - | |
| 284 | + | |
281 | 285 | | |
282 | 286 | | |
283 | 287 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
| |||
1395 | 1394 | | |
1396 | 1395 | | |
1397 | 1396 | | |
1398 | | - | |
1399 | | - | |
1400 | | - | |
1401 | | - | |
1402 | | - | |
1403 | | - | |
1404 | | - | |
1405 | | - | |
1406 | | - | |
1407 | | - | |
1408 | 1397 | | |
1409 | 1398 | | |
1410 | 1399 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | 2 | | |
4 | 3 | | |
5 | 4 | | |
| |||
256 | 255 | | |
257 | 256 | | |
258 | 257 | | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | 258 | | |
270 | 259 | | |
271 | 260 | | |
| |||
0 commit comments