diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-07-24 22:22:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-24 22:22:16 +0200 |
| commit | 2ff33bb1df6ef62a8f325887324cecf4b00f5087 (patch) | |
| tree | 4bfcdc377a72009800454a4ea58f58813b1d37c2 /library/std/src/thread/mod.rs | |
| parent | ed5dfed535b4be3a7ab0f4c0d73f274a7fe6165a (diff) | |
| parent | e13eb37eeb3ccb447f33496fe86d77498558d2d5 (diff) | |
| download | rust-2ff33bb1df6ef62a8f325887324cecf4b00f5087.tar.gz rust-2ff33bb1df6ef62a8f325887324cecf4b00f5087.zip | |
Rollup merge of #127717 - gurry:127441-stray-impl-sugg, r=compiler-errors
Fix malformed suggestion for repeated maybe unsized bounds Fixes #127441 Now when we encounter something like `foo(a : impl ?Sized + ?Sized)`, instead of suggesting removal of both bounds and leaving `foo(a: impl )` behind, we suggest changing the first bound to `Sized` and removing the second bound, resulting in `foo(a: impl Sized)`. Although the issue was reported for impl trait types, it also occurred with regular param bounds. So if we encounter `foo<T: ?Sized + ?Sized>(a: T)` we now detect that all the bounds are `?Sized` and therefore emit the suggestion to remove the entire predicate `: ?Sized + ?Sized` resulting in `foo<T>(a: T)`. Lastly, if we encounter a situation where some of the bounds are something other than `?Sized`, then we emit separate removal suggestions for each `?Sized` bound. E.g. if we see `foo(a: impl ?Sized + Bar + ?Sized)` or `foo<T: ?Sized + Bar + ?Sized>(a: T)` we emit suggestions such that the user will be left with `foo(a : impl Bar)` or `foo<T: Bar>(a: T)` respectively.
Diffstat (limited to 'library/std/src/thread/mod.rs')
0 files changed, 0 insertions, 0 deletions
