Commit 0fb0025
committed
Auto merge of rust-lang#78662 - sexxi-goose:add_expr_id_to_delegate, r=nikomatsakis
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#20
r? `@ghost`File tree
7 files changed
+118
-71
lines changed- compiler/rustc_typeck/src
- check
- src
- test/ui/borrowck
- tools/clippy/clippy_lints/src
- utils
7 files changed
+118
-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 | + | |
| 41 | + | |
32 | 42 | | |
33 | 43 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
38 | 55 | | |
39 | 56 | | |
40 | 57 | | |
| |||
116 | 133 | | |
117 | 134 | | |
118 | 135 | | |
119 | | - | |
| 136 | + | |
120 | 137 | | |
121 | 138 | | |
122 | 139 | | |
123 | | - | |
| 140 | + | |
124 | 141 | | |
125 | 142 | | |
126 | 143 | | |
| |||
133 | 150 | | |
134 | 151 | | |
135 | 152 | | |
136 | | - | |
| 153 | + | |
137 | 154 | | |
138 | 155 | | |
139 | 156 | | |
140 | 157 | | |
141 | 158 | | |
142 | | - | |
| 159 | + | |
143 | 160 | | |
144 | 161 | | |
145 | 162 | | |
146 | 163 | | |
147 | 164 | | |
148 | 165 | | |
149 | 166 | | |
150 | | - | |
| 167 | + | |
151 | 168 | | |
152 | 169 | | |
153 | 170 | | |
| |||
404 | 421 | | |
405 | 422 | | |
406 | 423 | | |
407 | | - | |
| 424 | + | |
408 | 425 | | |
409 | 426 | | |
410 | 427 | | |
| |||
436 | 453 | | |
437 | 454 | | |
438 | 455 | | |
439 | | - | |
| 456 | + | |
440 | 457 | | |
441 | 458 | | |
442 | 459 | | |
| |||
448 | 465 | | |
449 | 466 | | |
450 | 467 | | |
451 | | - | |
| 468 | + | |
452 | 469 | | |
453 | 470 | | |
454 | 471 | | |
| |||
476 | 493 | | |
477 | 494 | | |
478 | 495 | | |
479 | | - | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
480 | 501 | | |
481 | 502 | | |
482 | 503 | | |
483 | 504 | | |
484 | 505 | | |
485 | | - | |
| 506 | + | |
486 | 507 | | |
487 | 508 | | |
488 | 509 | | |
| |||
525 | 546 | | |
526 | 547 | | |
527 | 548 | | |
528 | | - | |
| 549 | + | |
529 | 550 | | |
530 | 551 | | |
531 | 552 | | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
532 | 556 | | |
533 | 557 | | |
534 | 558 | | |
535 | | - | |
| 559 | + | |
536 | 560 | | |
537 | 561 | | |
538 | | - | |
| 562 | + | |
539 | 563 | | |
540 | | - | |
| 564 | + | |
541 | 565 | | |
542 | 566 | | |
543 | 567 | | |
| |||
564 | 588 | | |
565 | 589 | | |
566 | 590 | | |
567 | | - | |
| 591 | + | |
568 | 592 | | |
569 | 593 | | |
570 | | - | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
571 | 599 | | |
572 | 600 | | |
573 | 601 | | |
| |||
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 | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| |||
135 | 135 | | |
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 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1957 | 1957 | | |
1958 | 1958 | | |
1959 | 1959 | | |
1960 | | - | |
| 1960 | + | |
1961 | 1961 | | |
1962 | | - | |
| 1962 | + | |
1963 | 1963 | | |
1964 | 1964 | | |
1965 | 1965 | | |
1966 | | - | |
| 1966 | + | |
1967 | 1967 | | |
1968 | 1968 | | |
1969 | | - | |
| 1969 | + | |
1970 | 1970 | | |
1971 | 1971 | | |
1972 | 1972 | | |
1973 | 1973 | | |
1974 | 1974 | | |
1975 | | - | |
| 1975 | + | |
1976 | 1976 | | |
1977 | 1977 | | |
1978 | | - | |
| 1978 | + | |
1979 | 1979 | | |
1980 | 1980 | | |
1981 | | - | |
| 1981 | + | |
1982 | 1982 | | |
1983 | 1983 | | |
1984 | 1984 | | |
| |||
0 commit comments