Commit f2c96dd
Ariel Ben-Yehuda
Rollup merge of rust-lang#39820 - jonasbb:export-attributes, r=nrc
Export attributes in save-analysis data
Since this is my first pull-request to rust, I would like to get some feedback about obvious errors in this implementation.
I would like to change the save-analysis data to include arbitrary attribute data.
A use-case I have in mind for this is identifying functions with `#[test]` annotations such that tools like rls can offer a test-runner feature. I described my idea here [rls#173](rust-lang/rls#173).
My changes contain:
1. track a vector of attributes in the various `*Data` types in `data.rs` and `external_data.rs`
2. implement lowering for `Attribute` and `MetaItem`
3. adjust `JsonDumper` to print the attributes
In the lowering of `Attribute` I remove the distinction between `MetaItem` and `NestedMetaItem`. I did this because this distinction is somewhat confusing. For example, `NestedMetaItemKind::Literal` has two identical spans, because both `NestedMetaItem` and `Lit` are defined as `Spanned<_>`.
My model is strictly more general, as it allows an `LitKind` instead of a `Symbol` for `MetaItem` and `Symbol`s are converted into a cooked string. As a consumer of the save-analysis data this shouldn't affect you much.
Example json output of `#[test]` annotation:
```
"attributes": [
{
"value": {
"name": {
"variant": "Str",
"fields": [
"test",
"Cooked"
]
},
"kind": "Literal",
"span": {
"file_name": "test.rs",
"byte_start": 2,
"byte_end": 6,
"line_start": 1,
"line_end": 1,
"column_start": 3,
"column_end": 7
}
},
"span": {
"file_name": "test.rs",
"byte_start": 0,
"byte_end": 7,
"line_start": 1,
"line_end": 1,
"column_start": 1,
"column_end": 8
}
}
]
```File tree
5 files changed
+102
-5
lines changed- src/librustc_save_analysis
5 files changed
+102
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| 139 | + | |
139 | 140 | | |
140 | 141 | | |
141 | 142 | | |
| |||
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
| 175 | + | |
174 | 176 | | |
175 | 177 | | |
176 | 178 | | |
| |||
256 | 258 | | |
257 | 259 | | |
258 | 260 | | |
| 261 | + | |
259 | 262 | | |
260 | 263 | | |
261 | 264 | | |
| |||
271 | 274 | | |
272 | 275 | | |
273 | 276 | | |
| 277 | + | |
274 | 278 | | |
275 | 279 | | |
276 | 280 | | |
| |||
295 | 299 | | |
296 | 300 | | |
297 | 301 | | |
| 302 | + | |
298 | 303 | | |
299 | 304 | | |
300 | 305 | | |
| |||
309 | 314 | | |
310 | 315 | | |
311 | 316 | | |
| 317 | + | |
312 | 318 | | |
313 | 319 | | |
314 | 320 | | |
| |||
323 | 329 | | |
324 | 330 | | |
325 | 331 | | |
| 332 | + | |
326 | 333 | | |
327 | 334 | | |
328 | 335 | | |
| |||
337 | 344 | | |
338 | 345 | | |
339 | 346 | | |
| 347 | + | |
340 | 348 | | |
341 | 349 | | |
342 | 350 | | |
| |||
351 | 359 | | |
352 | 360 | | |
353 | 361 | | |
| 362 | + | |
354 | 363 | | |
355 | 364 | | |
356 | 365 | | |
| |||
396 | 405 | | |
397 | 406 | | |
398 | 407 | | |
| 408 | + | |
399 | 409 | | |
400 | 410 | | |
401 | 411 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
373 | 373 | | |
374 | 374 | | |
375 | 375 | | |
| 376 | + | |
376 | 377 | | |
377 | 378 | | |
378 | 379 | | |
| |||
448 | 449 | | |
449 | 450 | | |
450 | 451 | | |
| 452 | + | |
451 | 453 | | |
452 | 454 | | |
453 | 455 | | |
| |||
519 | 521 | | |
520 | 522 | | |
521 | 523 | | |
| 524 | + | |
522 | 525 | | |
523 | 526 | | |
524 | 527 | | |
| |||
592 | 595 | | |
593 | 596 | | |
594 | 597 | | |
| 598 | + | |
595 | 599 | | |
596 | 600 | | |
597 | 601 | | |
| |||
636 | 640 | | |
637 | 641 | | |
638 | 642 | | |
| 643 | + | |
639 | 644 | | |
640 | 645 | | |
641 | 646 | | |
| |||
701 | 706 | | |
702 | 707 | | |
703 | 708 | | |
| 709 | + | |
704 | 710 | | |
705 | 711 | | |
706 | 712 | | |
| |||
727 | 733 | | |
728 | 734 | | |
729 | 735 | | |
| 736 | + | |
730 | 737 | | |
731 | 738 | | |
732 | 739 | | |
| |||
798 | 805 | | |
799 | 806 | | |
800 | 807 | | |
| 808 | + | |
801 | 809 | | |
802 | 810 | | |
803 | 811 | | |
| |||
1064 | 1072 | | |
1065 | 1073 | | |
1066 | 1074 | | |
| 1075 | + | |
1067 | 1076 | | |
1068 | 1077 | | |
1069 | 1078 | | |
| |||
1305 | 1314 | | |
1306 | 1315 | | |
1307 | 1316 | | |
| 1317 | + | |
1308 | 1318 | | |
1309 | 1319 | | |
1310 | 1320 | | |
| |||
1527 | 1537 | | |
1528 | 1538 | | |
1529 | 1539 | | |
| 1540 | + | |
1530 | 1541 | | |
1531 | 1542 | | |
1532 | 1543 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
67 | 102 | | |
68 | 103 | | |
69 | 104 | | |
| |||
98 | 133 | | |
99 | 134 | | |
100 | 135 | | |
| 136 | + | |
101 | 137 | | |
102 | 138 | | |
103 | 139 | | |
| |||
115 | 151 | | |
116 | 152 | | |
117 | 153 | | |
| 154 | + | |
118 | 155 | | |
119 | 156 | | |
120 | 157 | | |
| |||
179 | 216 | | |
180 | 217 | | |
181 | 218 | | |
| 219 | + | |
182 | 220 | | |
183 | 221 | | |
184 | 222 | | |
| |||
197 | 235 | | |
198 | 236 | | |
199 | 237 | | |
| 238 | + | |
200 | 239 | | |
201 | 240 | | |
202 | 241 | | |
| |||
346 | 385 | | |
347 | 386 | | |
348 | 387 | | |
| 388 | + | |
349 | 389 | | |
350 | 390 | | |
351 | 391 | | |
| |||
364 | 404 | | |
365 | 405 | | |
366 | 406 | | |
| 407 | + | |
367 | 408 | | |
368 | 409 | | |
369 | 410 | | |
| |||
381 | 422 | | |
382 | 423 | | |
383 | 424 | | |
| 425 | + | |
384 | 426 | | |
385 | 427 | | |
386 | 428 | | |
| |||
398 | 440 | | |
399 | 441 | | |
400 | 442 | | |
| 443 | + | |
401 | 444 | | |
402 | 445 | | |
403 | 446 | | |
| |||
437 | 480 | | |
438 | 481 | | |
439 | 482 | | |
| 483 | + | |
440 | 484 | | |
441 | 485 | | |
442 | 486 | | |
| |||
455 | 499 | | |
456 | 500 | | |
457 | 501 | | |
| 502 | + | |
458 | 503 | | |
459 | 504 | | |
460 | 505 | | |
| |||
471 | 516 | | |
472 | 517 | | |
473 | 518 | | |
| 519 | + | |
474 | 520 | | |
475 | 521 | | |
476 | 522 | | |
| |||
488 | 534 | | |
489 | 535 | | |
490 | 536 | | |
| 537 | + | |
491 | 538 | | |
492 | 539 | | |
493 | 540 | | |
| |||
504 | 551 | | |
505 | 552 | | |
506 | 553 | | |
| 554 | + | |
507 | 555 | | |
508 | 556 | | |
509 | 557 | | |
| |||
521 | 569 | | |
522 | 570 | | |
523 | 571 | | |
| 572 | + | |
524 | 573 | | |
525 | 574 | | |
526 | 575 | | |
| |||
537 | 586 | | |
538 | 587 | | |
539 | 588 | | |
| 589 | + | |
540 | 590 | | |
541 | 591 | | |
542 | 592 | | |
| |||
554 | 604 | | |
555 | 605 | | |
556 | 606 | | |
| 607 | + | |
557 | 608 | | |
558 | 609 | | |
559 | 610 | | |
| |||
570 | 621 | | |
571 | 622 | | |
572 | 623 | | |
| 624 | + | |
573 | 625 | | |
574 | 626 | | |
575 | 627 | | |
| |||
586 | 638 | | |
587 | 639 | | |
588 | 640 | | |
| 641 | + | |
589 | 642 | | |
590 | 643 | | |
591 | 644 | | |
| |||
675 | 728 | | |
676 | 729 | | |
677 | 730 | | |
| 731 | + | |
678 | 732 | | |
679 | 733 | | |
680 | 734 | | |
| |||
694 | 748 | | |
695 | 749 | | |
696 | 750 | | |
| 751 | + | |
697 | 752 | | |
698 | 753 | | |
699 | 754 | | |
| |||
0 commit comments