Skip to content

overflow evaluating the requirement <Self as FilterDsl<_>>::Output with 1.49.0 #80953

Closed
@weiznich

Description

@weiznich

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions