Commit 2a2ce6e
remove reliance on a trait solver inference bug (#18840)
The parameter `In` of `call_inner` is completely unconstrained by its
arguments and return type. We are only able to infer it by assuming that
the only associated type equal to `In::Param<'_>` is `In::Param<'_>`
itself. It could just as well be some other associated type which only
normalizes to `In::Param<'_>`. This will change with the next-generation
trait solver and was encountered by a crater run
rust-lang/rust#133502
cc
rust-lang/trait-system-refactor-initiative#168
I couldn't think of a cleaner alternative here. I first tried to just
provide `In` as an explicit type parameter. This is also kinda ugly as I
need to provide a variable number of them and `${ignore(..)}` is
currently still unstable rust-lang/rust#83527.
Sorry for the inconvenience. Also fun that this function exists to avoid
a separate solver bug in the first place 😅1 parent 495798c commit 2a2ce6e
2 files changed
Lines changed: 4 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
| 287 | + | |
287 | 288 | | |
288 | 289 | | |
289 | 290 | | |
| |||
292 | 293 | | |
293 | 294 | | |
294 | 295 | | |
295 | | - | |
| 296 | + | |
296 | 297 | | |
297 | 298 | | |
298 | 299 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
972 | 972 | | |
973 | 973 | | |
974 | 974 | | |
| 975 | + | |
975 | 976 | | |
976 | 977 | | |
977 | 978 | | |
978 | 979 | | |
979 | 980 | | |
980 | 981 | | |
981 | 982 | | |
982 | | - | |
| 983 | + | |
983 | 984 | | |
984 | 985 | | |
985 | 986 | | |
| |||
0 commit comments