Commit 0442fba
committed
Auto merge of rust-lang#106607 - compiler-errors:be-more-accurate-abt-method-suggestions, r=oli-obk
Consider return type when giving various method suggestions
1. Fix a bug in method probe where we weren't normalizing `xform_ret_ty` for non-`impl` method candidates. This shouldn't affect happy-path code, since we only use `xform_ret_ty` when probing methods for diagnostics (I think).
2. Pass the return type expectation down to `lookup_probe`/`probe_for_name` usages in diagnostics. Added a few UI tests to gate against bad suggestions.
3. Make a `FnCtxt::lookup_probe_for_diagnostic` which properly passes down `IsSuggestion(true)`. Should help suppress other weird notes in some corner cases.File tree
16 files changed
+329
-107
lines changed- compiler/rustc_hir_typeck/src
- fn_ctxt
- method
- src/test/ui
- async-await
- methods
- privacy
- suggestions
16 files changed
+329
-107
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
496 | 496 | | |
497 | 497 | | |
498 | 498 | | |
499 | | - | |
500 | | - | |
| 499 | + | |
501 | 500 | | |
502 | | - | |
503 | 501 | | |
504 | | - | |
| 502 | + | |
505 | 503 | | |
506 | 504 | | |
507 | 505 | | |
| 506 | + | |
508 | 507 | | |
509 | 508 | | |
510 | 509 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
| 311 | + | |
311 | 312 | | |
312 | 313 | | |
313 | 314 | | |
| |||
557 | 558 | | |
558 | 559 | | |
559 | 560 | | |
560 | | - | |
561 | | - | |
| 561 | + | |
562 | 562 | | |
563 | | - | |
564 | 563 | | |
565 | | - | |
| 564 | + | |
566 | 565 | | |
| 566 | + | |
567 | 567 | | |
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
571 | 571 | | |
572 | 572 | | |
| 573 | + | |
573 | 574 | | |
574 | 575 | | |
575 | 576 | | |
| |||
581 | 582 | | |
582 | 583 | | |
583 | 584 | | |
| 585 | + | |
584 | 586 | | |
585 | 587 | | |
586 | 588 | | |
| |||
1832 | 1834 | | |
1833 | 1835 | | |
1834 | 1836 | | |
1835 | | - | |
| 1837 | + | |
1836 | 1838 | | |
1837 | 1839 | | |
1838 | 1840 | | |
| |||
1850 | 1852 | | |
1851 | 1853 | | |
1852 | 1854 | | |
| 1855 | + | |
1853 | 1856 | | |
1854 | 1857 | | |
1855 | 1858 | | |
1856 | 1859 | | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
1857 | 1863 | | |
1858 | 1864 | | |
1859 | 1865 | | |
| |||
1869 | 1875 | | |
1870 | 1876 | | |
1871 | 1877 | | |
1872 | | - | |
1873 | | - | |
| 1878 | + | |
1874 | 1879 | | |
1875 | | - | |
1876 | 1880 | | |
1877 | | - | |
| 1881 | + | |
1878 | 1882 | | |
| 1883 | + | |
1879 | 1884 | | |
1880 | 1885 | | |
1881 | 1886 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | | - | |
| 354 | + | |
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
| |||
1244 | 1244 | | |
1245 | 1245 | | |
1246 | 1246 | | |
| 1247 | + | |
1247 | 1248 | | |
1248 | 1249 | | |
1249 | 1250 | | |
| |||
2186 | 2187 | | |
2187 | 2188 | | |
2188 | 2189 | | |
| 2190 | + | |
2189 | 2191 | | |
2190 | 2192 | | |
2191 | 2193 | | |
| |||
2244 | 2246 | | |
2245 | 2247 | | |
2246 | 2248 | | |
2247 | | - | |
| 2249 | + | |
2248 | 2250 | | |
2249 | 2251 | | |
2250 | 2252 | | |
2251 | 2253 | | |
2252 | | - | |
| 2254 | + | |
| 2255 | + | |
| 2256 | + | |
| 2257 | + | |
| 2258 | + | |
| 2259 | + | |
| 2260 | + | |
2253 | 2261 | | |
2254 | 2262 | | |
2255 | 2263 | | |
| |||
2423 | 2431 | | |
2424 | 2432 | | |
2425 | 2433 | | |
2426 | | - | |
| 2434 | + | |
2427 | 2435 | | |
2428 | 2436 | | |
2429 | 2437 | | |
| 2438 | + | |
2430 | 2439 | | |
2431 | 2440 | | |
2432 | 2441 | | |
| |||
2438 | 2447 | | |
2439 | 2448 | | |
2440 | 2449 | | |
2441 | | - | |
| 2450 | + | |
| 2451 | + | |
2442 | 2452 | | |
2443 | 2453 | | |
2444 | 2454 | | |
| |||
2452 | 2462 | | |
2453 | 2463 | | |
2454 | 2464 | | |
2455 | | - | |
| 2465 | + | |
2456 | 2466 | | |
2457 | 2467 | | |
2458 | 2468 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
820 | 820 | | |
821 | 821 | | |
822 | 822 | | |
| 823 | + | |
823 | 824 | | |
824 | 825 | | |
825 | 826 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1343 | 1343 | | |
1344 | 1344 | | |
1345 | 1345 | | |
| 1346 | + | |
1346 | 1347 | | |
1347 | 1348 | | |
1348 | 1349 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
103 | 104 | | |
| 105 | + | |
104 | 106 | | |
105 | 107 | | |
106 | 108 | | |
| |||
118 | 120 | | |
119 | 121 | | |
120 | 122 | | |
121 | | - | |
| 123 | + | |
122 | 124 | | |
123 | 125 | | |
124 | 126 | | |
| |||
130 | 132 | | |
131 | 133 | | |
132 | 134 | | |
133 | | - | |
| 135 | + | |
134 | 136 | | |
135 | 137 | | |
136 | 138 | | |
137 | | - | |
138 | | - | |
| 139 | + | |
139 | 140 | | |
140 | | - | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
| 144 | + | |
144 | 145 | | |
145 | 146 | | |
146 | 147 | | |
| |||
221 | 222 | | |
222 | 223 | | |
223 | 224 | | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
243 | 249 | | |
244 | 250 | | |
245 | 251 | | |
| |||
252 | 258 | | |
253 | 259 | | |
254 | 260 | | |
255 | | - | |
| 261 | + | |
256 | 262 | | |
257 | 263 | | |
258 | 264 | | |
259 | 265 | | |
260 | 266 | | |
| 267 | + | |
261 | 268 | | |
262 | 269 | | |
263 | 270 | | |
| |||
267 | 274 | | |
268 | 275 | | |
269 | 276 | | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
270 | 297 | | |
271 | 298 | | |
272 | 299 | | |
| |||
484 | 511 | | |
485 | 512 | | |
486 | 513 | | |
| 514 | + | |
487 | 515 | | |
488 | 516 | | |
489 | 517 | | |
| |||
0 commit comments