Commit dc77c5e
committed
Auto merge of #34032 - jseyfried:load_macros_in_expansion, r=nrc
Support `#[macro_use]` on macro-expanded crates
This PR loads macros from `#[macro_use]` crates during expansion so that
- macro-expanded `#[macro_use]` crates work (fixes #33936, fixes #28071), and
- macros imported from crates have the same scope as macros imported from modules.
This is a [breaking-change]. For example, this will break:
```rust
macro_rules! m {
() => { #[macro_use(foo)] extern crate core; } //~ ERROR imported macro not found
}
m!();
```
Also, this will break:
```rust
macro_rules! try { () => {} }
// #[macro_use] mod bar { macro_rules! try { ... } } //< ... just like this would ...
fn main() { try!(); } //< ... making this an error
```
r? @nrcFile tree
9 files changed
+99
-97
lines changed- src
- librustc_driver
- librustc_metadata
- libsyntax
- ext
- test
- compile-fail-fulldeps
- run-fail-fulldeps
- run-pass-fulldeps
9 files changed
+99
-97
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
604 | 604 | | |
605 | 605 | | |
606 | 606 | | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | 607 | | |
612 | 608 | | |
613 | 609 | | |
| |||
696 | 692 | | |
697 | 693 | | |
698 | 694 | | |
| 695 | + | |
699 | 696 | | |
700 | 697 | | |
701 | 698 | | |
702 | | - | |
| 699 | + | |
| 700 | + | |
703 | 701 | | |
704 | 702 | | |
705 | | - | |
706 | 703 | | |
707 | 704 | | |
708 | 705 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
25 | 23 | | |
| 24 | + | |
26 | 25 | | |
27 | | - | |
| 26 | + | |
28 | 27 | | |
29 | | - | |
30 | 28 | | |
31 | | - | |
32 | 29 | | |
33 | 30 | | |
34 | 31 | | |
35 | | - | |
| 32 | + | |
36 | 33 | | |
37 | 34 | | |
38 | | - | |
39 | 35 | | |
40 | | - | |
41 | 36 | | |
42 | 37 | | |
43 | 38 | | |
| |||
46 | 41 | | |
47 | 42 | | |
48 | 43 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | 44 | | |
73 | 45 | | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
| 46 | + | |
| 47 | + | |
86 | 48 | | |
87 | 49 | | |
88 | 50 | | |
89 | 51 | | |
90 | | - | |
| 52 | + | |
91 | 53 | | |
92 | 54 | | |
93 | 55 | | |
| |||
130 | 92 | | |
131 | 93 | | |
132 | 94 | | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
| 95 | + | |
139 | 96 | | |
140 | 97 | | |
141 | 98 | | |
142 | 99 | | |
143 | 100 | | |
144 | 101 | | |
| 102 | + | |
145 | 103 | | |
146 | | - | |
| 104 | + | |
| 105 | + | |
147 | 106 | | |
148 | 107 | | |
149 | | - | |
| 108 | + | |
150 | 109 | | |
151 | 110 | | |
152 | 111 | | |
153 | | - | |
| 112 | + | |
154 | 113 | | |
155 | 114 | | |
156 | | - | |
| 115 | + | |
157 | 116 | | |
158 | 117 | | |
159 | | - | |
| 118 | + | |
160 | 119 | | |
161 | 120 | | |
162 | | - | |
| 121 | + | |
163 | 122 | | |
164 | 123 | | |
165 | 124 | | |
| |||
170 | 129 | | |
171 | 130 | | |
172 | 131 | | |
173 | | - | |
| 132 | + | |
174 | 133 | | |
175 | 134 | | |
176 | 135 | | |
| |||
189 | 148 | | |
190 | 149 | | |
191 | 150 | | |
| 151 | + | |
| 152 | + | |
192 | 153 | | |
193 | 154 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
536 | 536 | | |
537 | 537 | | |
538 | 538 | | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
539 | 550 | | |
540 | 551 | | |
541 | 552 | | |
| |||
546 | 557 | | |
547 | 558 | | |
548 | 559 | | |
| 560 | + | |
549 | 561 | | |
550 | 562 | | |
551 | 563 | | |
| |||
561 | 573 | | |
562 | 574 | | |
563 | 575 | | |
564 | | - | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
565 | 579 | | |
566 | 580 | | |
567 | 581 | | |
| |||
572 | 586 | | |
573 | 587 | | |
574 | 588 | | |
| 589 | + | |
575 | 590 | | |
576 | 591 | | |
577 | 592 | | |
| |||
925 | 940 | | |
926 | 941 | | |
927 | 942 | | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
928 | 949 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
726 | 726 | | |
727 | 727 | | |
728 | 728 | | |
729 | | - | |
| 729 | + | |
730 | 730 | | |
731 | 731 | | |
732 | 732 | | |
733 | | - | |
734 | | - | |
735 | | - | |
| 733 | + | |
736 | 734 | | |
737 | 735 | | |
738 | 736 | | |
| |||
748 | 746 | | |
749 | 747 | | |
750 | 748 | | |
751 | | - | |
| 749 | + | |
752 | 750 | | |
753 | | - | |
754 | | - | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
755 | 762 | | |
756 | 763 | | |
757 | 764 | | |
| |||
1137 | 1144 | | |
1138 | 1145 | | |
1139 | 1146 | | |
1140 | | - | |
1141 | | - | |
1142 | 1147 | | |
1143 | 1148 | | |
1144 | 1149 | | |
| |||
1151 | 1156 | | |
1152 | 1157 | | |
1153 | 1158 | | |
1154 | | - | |
1155 | | - | |
1156 | | - | |
1157 | | - | |
1158 | 1159 | | |
1159 | 1160 | | |
1160 | 1161 | | |
| |||
1220 | 1221 | | |
1221 | 1222 | | |
1222 | 1223 | | |
1223 | | - | |
| 1224 | + | |
1224 | 1225 | | |
1225 | 1226 | | |
1226 | 1227 | | |
| |||
1291 | 1292 | | |
1292 | 1293 | | |
1293 | 1294 | | |
1294 | | - | |
1295 | | - | |
1296 | | - | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
1297 | 1298 | | |
1298 | 1299 | | |
1299 | 1300 | | |
| |||
1306 | 1307 | | |
1307 | 1308 | | |
1308 | 1309 | | |
1309 | | - | |
1310 | | - | |
1311 | | - | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
1312 | 1313 | | |
1313 | 1314 | | |
1314 | 1315 | | |
| |||
1320 | 1321 | | |
1321 | 1322 | | |
1322 | 1323 | | |
1323 | | - | |
1324 | | - | |
1325 | | - | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
1326 | 1327 | | |
1327 | 1328 | | |
1328 | 1329 | | |
1329 | 1330 | | |
1330 | 1331 | | |
1331 | 1332 | | |
1332 | | - | |
1333 | | - | |
1334 | | - | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
1335 | 1336 | | |
1336 | 1337 | | |
1337 | 1338 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
| 274 | + | |
274 | 275 | | |
275 | 276 | | |
276 | 277 | | |
277 | 278 | | |
278 | 279 | | |
279 | | - | |
| 280 | + | |
| 281 | + | |
280 | 282 | | |
281 | 283 | | |
282 | 284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
0 commit comments