Closed
Description
Code
I've tried to compile wundergraph with the current stable release (1.49)
I expected that the code compiles because it worked with 1.48.
Instead, this happened: The code fails to compile with the following error message:
$ git clone https://github.com/weiznich/wundergraph
$ git checkout ed4986f3e24f38531726125783917bf61af0bbd0
$ cd wundergraph
$ cargo +1.49.0 check
Checking wundergraph v0.1.2 (/home/weiznich/Dokumente/rust/wundergraph/wundergraph)
error[E0275]: overflow evaluating the requirement `<<<R as HasTable>::Table as AsQuery>::Query as FilterDsl<_>>::Output`
--> wundergraph/src/query_builder/mutations/delete.rs:35:15
|
35 | R::Table: HandleDelete<R, D, DB, Ctx> + 'static,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
64 | pub trait HandleDelete<L, K, DB, Ctx> {
| ------------------------------------- required by this bound in `HandleDelete`
|
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`wundergraph`)
= note: required because of the requirements on the impl of `HandleDelete<R, D, DB, Ctx>` for `<R as HasTable>::Table`
error[E0275]: overflow evaluating the requirement `<Self as FilterDsl<_>>::Output`
--> wundergraph/src/query_builder/mutations/delete.rs:64:1
|
64 | pub trait HandleDelete<L, K, DB, Ctx> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `HandleDelete`
|
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`wundergraph`)
= note: required because of the requirements on the impl of `HandleDelete<L, K, DB, Ctx>` for `Self`
error[E0275]: overflow evaluating the requirement `<<<R as HasTable>::Table as AsQuery>::Query as FilterDsl<_>>::Output`
--> wundergraph/src/query_builder/mutations/update.rs:30:15
|
30 | R::Table: HandleUpdate<R, U, DB, Ctx> + 'static,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
62 | pub trait HandleUpdate<L, U, DB, Ctx> {
| ------------------------------------- required by this bound in `HandleUpdate`
|
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`wundergraph`)
= note: required because of the requirements on the impl of `HandleUpdate<R, U, DB, Ctx>` for `<R as HasTable>::Table`
error[E0275]: overflow evaluating the requirement `<Self as FilterDsl<_>>::Output`
--> wundergraph/src/query_builder/mutations/update.rs:62:1
|
62 | pub trait HandleUpdate<L, U, DB, Ctx> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `HandleUpdate`
|
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`wundergraph`)
= note: required because of the requirements on the impl of `HandleUpdate<L, U, DB, Ctx>` for `Self`
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0275`.
error: could not compile `wundergraph`
Version it worked on
It most recently worked on: Rust 1.48
It most recently worked on:
Version with regression
rustc --version --verbose
:
rustc 1.49.0 (e1884a8e3 2020-12-29)
binary: rustc
commit-hash: e1884a8e3c3e813aada8254edfa120e85bf5ffca
commit-date: 2020-12-29
host: x86_64-unknown-linux-gnu
release: 1.49.0
As a side note: This is another diesel/trait system related issue that occurred with the latest release. Could we please consider something like #79599 to prevent this in the future? I doesn't feel right for me that I need to spend a considerable amount of my free time for such regression to a language that calls it self stable in such a way that old code should continue to compile.