Commit 1f53754
committed
Provide diagnostic suggestion in ExprUseVisitor Delegate
The [Delegate
trait](https://github.com/rust-lang/rust/blob/981346fc07dd5ef414c5b1b21999f7604cece006/compiler/rustc_typeck/src/expr_use_visitor.rs#L28-L38)
currently use `PlaceWithHirId` which is composed of Hir `Place` and the
corresponding expression id.
Even though this is an accurate way of expressing how a Place is used,
it can cause confusion during diagnostics.
Eg:
```
let arr : [String; 5];
let [a, ...] = arr;
^^^ E1 ^^^ = ^^E2^^
```
Here `arr` is moved because of the binding created E1. However, when we
point to E1 in diagnostics with the message `arr` was moved, it can be
confusing. Rather we would like to report E2 to the user.
Closes: rust-lang/project-rfc-2229#201 parent c4fe25d commit 1f53754
File tree
7 files changed
+125
-71
lines changed- compiler/rustc_typeck/src
- check
- src
- test/ui/borrowck
- tools/clippy/clippy_lints/src
- utils
7 files changed
+125
-71
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
279 | 279 | | |
280 | 280 | | |
281 | 281 | | |
| 282 | + | |
282 | 283 | | |
283 | 284 | | |
284 | 285 | | |
285 | | - | |
286 | | - | |
| 286 | + | |
| 287 | + | |
287 | 288 | | |
288 | 289 | | |
289 | 290 | | |
| |||
303 | 304 | | |
304 | 305 | | |
305 | 306 | | |
306 | | - | |
| 307 | + | |
307 | 308 | | |
308 | 309 | | |
309 | 310 | | |
| |||
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
| 317 | + | |
324 | 318 | | |
325 | 319 | | |
326 | 320 | | |
| |||
345 | 339 | | |
346 | 340 | | |
347 | 341 | | |
348 | | - | |
349 | | - | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
350 | 351 | | |
351 | 352 | | |
352 | 353 | | |
| |||
362 | 363 | | |
363 | 364 | | |
364 | 365 | | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | | - | |
| 366 | + | |
370 | 367 | | |
371 | 368 | | |
372 | 369 | | |
373 | | - | |
374 | | - | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
375 | 379 | | |
376 | 380 | | |
377 | 381 | | |
| |||
381 | 385 | | |
382 | 386 | | |
383 | 387 | | |
384 | | - | |
| 388 | + | |
385 | 389 | | |
386 | 390 | | |
387 | 391 | | |
| |||
500 | 504 | | |
501 | 505 | | |
502 | 506 | | |
503 | | - | |
504 | | - | |
505 | | - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
506 | 518 | | |
507 | 519 | | |
508 | | - | |
509 | | - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
510 | 530 | | |
511 | 531 | | |
512 | 532 | | |
513 | 533 | | |
514 | | - | |
| 534 | + | |
515 | 535 | | |
516 | 536 | | |
517 | | - | |
| 537 | + | |
518 | 538 | | |
519 | 539 | | |
520 | 540 | | |
521 | 541 | | |
522 | | - | |
523 | | - | |
524 | | - | |
525 | | - | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
526 | 545 | | |
527 | 546 | | |
528 | 547 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
32 | 41 | | |
33 | 42 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
38 | 62 | | |
39 | 63 | | |
40 | 64 | | |
| |||
116 | 140 | | |
117 | 141 | | |
118 | 142 | | |
119 | | - | |
| 143 | + | |
120 | 144 | | |
121 | 145 | | |
122 | 146 | | |
123 | | - | |
| 147 | + | |
124 | 148 | | |
125 | 149 | | |
126 | 150 | | |
| |||
133 | 157 | | |
134 | 158 | | |
135 | 159 | | |
136 | | - | |
| 160 | + | |
137 | 161 | | |
138 | 162 | | |
139 | 163 | | |
140 | 164 | | |
141 | 165 | | |
142 | | - | |
| 166 | + | |
143 | 167 | | |
144 | 168 | | |
145 | 169 | | |
146 | 170 | | |
147 | 171 | | |
148 | 172 | | |
149 | 173 | | |
150 | | - | |
| 174 | + | |
151 | 175 | | |
152 | 176 | | |
153 | 177 | | |
| |||
404 | 428 | | |
405 | 429 | | |
406 | 430 | | |
407 | | - | |
| 431 | + | |
408 | 432 | | |
409 | 433 | | |
410 | 434 | | |
| |||
436 | 460 | | |
437 | 461 | | |
438 | 462 | | |
439 | | - | |
| 463 | + | |
440 | 464 | | |
441 | 465 | | |
442 | 466 | | |
| |||
448 | 472 | | |
449 | 473 | | |
450 | 474 | | |
451 | | - | |
| 475 | + | |
452 | 476 | | |
453 | 477 | | |
454 | 478 | | |
| |||
476 | 500 | | |
477 | 501 | | |
478 | 502 | | |
479 | | - | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
480 | 508 | | |
481 | 509 | | |
482 | 510 | | |
483 | 511 | | |
484 | 512 | | |
485 | | - | |
| 513 | + | |
486 | 514 | | |
487 | 515 | | |
488 | 516 | | |
| |||
525 | 553 | | |
526 | 554 | | |
527 | 555 | | |
528 | | - | |
| 556 | + | |
529 | 557 | | |
530 | 558 | | |
531 | 559 | | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
532 | 563 | | |
533 | 564 | | |
534 | 565 | | |
535 | | - | |
| 566 | + | |
536 | 567 | | |
537 | 568 | | |
538 | | - | |
| 569 | + | |
539 | 570 | | |
540 | | - | |
| 571 | + | |
541 | 572 | | |
542 | 573 | | |
543 | 574 | | |
| |||
564 | 595 | | |
565 | 596 | | |
566 | 597 | | |
567 | | - | |
| 598 | + | |
568 | 599 | | |
569 | 600 | | |
570 | | - | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
571 | 606 | | |
572 | 607 | | |
573 | 608 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1694 | 1694 | | |
1695 | 1695 | | |
1696 | 1696 | | |
1697 | | - | |
| 1697 | + | |
1698 | 1698 | | |
1699 | | - | |
| 1699 | + | |
1700 | 1700 | | |
1701 | 1701 | | |
1702 | 1702 | | |
1703 | | - | |
| 1703 | + | |
1704 | 1704 | | |
1705 | 1705 | | |
1706 | | - | |
| 1706 | + | |
1707 | 1707 | | |
1708 | 1708 | | |
1709 | 1709 | | |
1710 | 1710 | | |
1711 | 1711 | | |
1712 | | - | |
| 1712 | + | |
1713 | 1713 | | |
1714 | 1714 | | |
1715 | | - | |
| 1715 | + | |
1716 | 1716 | | |
1717 | 1717 | | |
1718 | | - | |
| 1718 | + | |
1719 | 1719 | | |
1720 | 1720 | | |
1721 | 1721 | | |
| |||
0 commit comments