Rust: Building diesel documentation fails

Created on 24 Sep 2018  Â·  28Comments  Â·  Source: rust-lang/rust

After https://github.com/rust-lang/rust/issues/52545 is fixed now, I've tried to build diesels documentation and failed with the following error:

 Documenting diesel v1.3.3 (/home/weiznich/Dokumente/rust/diesel/diesel)
error[E0275]: overflow evaluating the requirement `<&_ as insertable::Insertable<_>>::Values`
  |
  = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&_, &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(_, _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(_, _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((_, _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((_, _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((_, _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((_, _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_
, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _,
_, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _,
 _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _,
 _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _
, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _
, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _,
_, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _,
_, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _,
 _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _,
 _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _
, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _
, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _),
_, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _),
_, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _),
 _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _),
 _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)
, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)
, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _
), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(((((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _
), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(((((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _,
_), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), &_, &_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((((((((((((((((((((_, _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _,
_), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _), _, _, _, _)`
…

Note that a normal build of diesel succeeds and also all doc tests are passing.

rustc version: rustc 1.30.0-nightly (4591a245c 2018-09-22)
rustdoc version: rustdoc 1.30.0-nightly (4591a245c 2018-09-22)
diesel version: git master at commit 42d5b831

P-high T-compiler T-rustdoc regression-from-stable-to-beta

Most helpful comment

I can confirm that this is fixed with the 1.30.1 release 🎉

All 28 comments

This breaks the documentation for all crates which depend on diesel too, unless you run with --no-deps 😦

Is there anything I can do to help to debug/fix this?

I've played a bit further around with this.
That strange thing is that it seems to depend on feature flags on diesel.
cargo +nightly doc --no-default-features and cargo +nightly doc --no-default-features --features "postgres" works fine.
Any of cargo +nightly doc --no-default-features --features "sqlite", cargo +nightly doc --no-default-features --features "mysql", cargo +nightly doc --no-default-features --features "with-deprecated" and cargo +nightly doc --no-default-features --features "32-column-tables" fails with the error posted above.
So given the structure of the diesel code base the feature with the smallest impact is "32-column-table" because it is used only in one place. This macro is used to implement various traits for tuples of different sizes. The number in the front indicates the number of tuple elements. Toying around with this has shown that documentation builds fine (if only this feature is passed) as long as we generate those impl for tuples up to 16 elements. For bigger tuples building the documentation fails. That seems strange.

Is this the same as #53122?

Is this the same as #53122?

Seems to be the same underlying issue, but it should be noted that this happens for me on the 2015 edition. (So it is probably not dependent on the edition.)

Also a similar error occurs if someone tries to build diesel with cargo build --no-default-features --features "sqlite" on windows using the -gnu or the -msvc toolchain. Surprisingly this does not happen on linux. For me it seems to be quite strange that some trait resolution thing seems to be depended on the os used to compiling the crate in absent of any os specific impls.

I've played around a bit more and tried to get cargo doc --no-default-features --features "with-deprecated" working on diesel. Turns out that removing some traits makes it building and documenting. I've no clue why, because those traits are not connected to Insertable that is mentioned in the error message in any way.
I'm totally willing to dig into this event deeper, but I've no idea where to look for what so it would be great if anyone is willing to provide some guidance for this.

I've tried to play with cargo bisect-rustc to find the point where this error was introduced in rustdoc. (This happens also on released diesel (1.3.0) versions, where rustdoc was working at release time.)
This points to somewhere between 07-24 and 07-30 (Unfortunately there are no nightly's in between)

This results in the following commit range 5ed2b5120...a1e6bcb2085

Rustdoc related commits:

  • fb0653e40289eecf32f3fac1e84fc69b815ce5cb
  • dab71516f1f4f6a63e32dffeb2625a12e5113485
  • 46804ef0cee4b55ed9922719da243b6edd9101b2
  • 487e961c6ae072d969e148def0b0856c2367ae00

Blind guess without any future investigation: It is related to dab71516f1f4f6a63e32dffeb2625a12e5113485?

cc @GuillaumeGomez as author of that commit

It's very likely but it was supposed to be fixed by https://github.com/rust-lang/rust/pull/54199.

cc @nikomatsakis

@GuillaumeGomez This comment sounds that this also requires some changes in rustdoc. Are they already done?
Is there anything other I can do to help solving this?

(This is basically blocking diesel doing a release 😟 )

Ah indeed. Opening an issue to keep it in mind.

Opened #55197.

Unfortunately, as said in this comment, problem doesn't lie in rustdoc but still in rustc.

Or maybe I missed something else? cc @nikomatsakis

Sorry, missed these notifications. I will add to my list to investigate.

This is a stable-to-stable regression: worked in 1.29.2 and broken in 1.30.0.

cc @rust-lang/compiler can we get this fixed soon?

I'm looking into it


Backtrace

   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:480
   5: std::panicking::begin_panic
             at /home/oliver/Projects/rust/rust4/src/libstd/panicking.rs:410
   6: rustc_errors::Handler::emit_db
             at librustc_errors/lib.rs:500
             at librustc_errors/lib.rs:607
             at librustc_errors/lib.rs:724
   7: rustc_errors::diagnostic_builder::DiagnosticBuilder::emit
             at librustc_errors/diagnostic_builder.rs:98
   8: rustc::traits::error_reporting::<impl rustc::infer::InferCtxt<'a, 'gcx, 'tcx>>::report_overflow_error
             at librustc/traits/error_reporting.rs:550
   9: rustc::traits::project::opt_normalize_projection_type
             at librustc/traits/project.rs:888
             at librustc/traits/project.rs:642
  10: rustc::traits::project::project_and_unify_type
             at librustc/traits/project.rs:246
  11: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:210
             at librustc/infer/mod.rs:822
  12: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/project.rs:205
             at librustc/traits/select.rs:825
  13: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  14: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  15: rustc::traits::select::SelectionContext::evaluate_stack
             at librustc/traits/select.rs:1044
  16: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  17: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  18: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:698
  19: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  20: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  21: <&mut I as core::iter::iterator::Iterator>::next
             at librustc/traits/select.rs:1376
             at /home/oliver/Projects/rust/rust4/src/libcore/ops/function.rs:286
             at /home/oliver/Projects/rust/rust4/src/libcore/option.rs:424
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2686
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2523
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1232
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:2623
  22: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1788
  23: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1700
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1249
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:1476
             at librustc/traits/select.rs:1374
  24: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:1216
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  25: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  26: rustc::traits::select::SelectionContext::candidate_from_obligation
             at librustc/traits/select.rs:1216
  27: rustc::traits::select::SelectionContext::select
             at librustc/traits/select.rs:597
  28: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:1056
             at librustc/infer/mod.rs:822
  29: rustc::traits::project::opt_normalize_projection_type
             at librustc/traits/project.rs:1055
             at librustc/traits/project.rs:914
             at librustc/traits/project.rs:642
  30: rustc::traits::project::project_and_unify_type
             at librustc/traits/project.rs:246
  31: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:210
             at librustc/infer/mod.rs:822
  32: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/project.rs:205
             at librustc/traits/select.rs:825
  33: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  34: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  35: rustc::traits::select::SelectionContext::evaluate_stack
             at librustc/traits/select.rs:1044
  36: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  37: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  38: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:698
  39: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  40: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  41: <&mut I as core::iter::iterator::Iterator>::next
             at librustc/traits/select.rs:1376
             at /home/oliver/Projects/rust/rust4/src/libcore/ops/function.rs:286
             at /home/oliver/Projects/rust/rust4/src/libcore/option.rs:424
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2686
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2523
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1232
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:2623
  42: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1788
  43: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1700
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1249
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:1476
             at librustc/traits/select.rs:1374
  44: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:1216
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  45: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  46: rustc::traits::select::SelectionContext::candidate_from_obligation
             at librustc/traits/select.rs:1216
  47: rustc::traits::select::SelectionContext::select
             at librustc/traits/select.rs:597
  48: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:1056
             at librustc/infer/mod.rs:822
  49: rustc::traits::project::opt_normalize_projection_type
             at librustc/traits/project.rs:1055
             at librustc/traits/project.rs:914
             at librustc/traits/project.rs:642
  50: rustc::traits::project::project_and_unify_type
             at librustc/traits/project.rs:246
  51: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:210
             at librustc/infer/mod.rs:822
  52: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/project.rs:205
             at librustc/traits/select.rs:825
  53: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  54: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  55: rustc::traits::select::SelectionContext::evaluate_stack
             at librustc/traits/select.rs:1044
  56: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  57: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  58: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:698
  59: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  60: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  61: <&mut I as core::iter::iterator::Iterator>::next
             at librustc/traits/select.rs:1376
             at /home/oliver/Projects/rust/rust4/src/libcore/ops/function.rs:286
             at /home/oliver/Projects/rust/rust4/src/libcore/option.rs:424
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2686
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2523
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1232
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:2623
  62: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1788
  63: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1700
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1249
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:1476
             at librustc/traits/select.rs:1374
  64: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:1216
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  65: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  66: rustc::traits::select::SelectionContext::candidate_from_obligation
             at librustc/traits/select.rs:1216
  67: rustc::traits::select::SelectionContext::select
             at librustc/traits/select.rs:597
  68: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:1056
             at librustc/infer/mod.rs:822
  69: rustc::traits::project::opt_normalize_projection_type
             at librustc/traits/project.rs:1055
             at librustc/traits/project.rs:914
             at librustc/traits/project.rs:642
  70: rustc::traits::project::project_and_unify_type
             at librustc/traits/project.rs:246
  71: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:210
             at librustc/infer/mod.rs:822
  72: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/project.rs:205
             at librustc/traits/select.rs:825
  73: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  74: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  75: rustc::traits::select::SelectionContext::evaluate_stack
             at librustc/traits/select.rs:1044
  76: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  77: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  78: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:698
  79: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  80: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  81: <&mut I as core::iter::iterator::Iterator>::next
             at librustc/traits/select.rs:1376
             at /home/oliver/Projects/rust/rust4/src/libcore/ops/function.rs:286
             at /home/oliver/Projects/rust/rust4/src/libcore/option.rs:424
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:1394
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2686
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/mod.rs:2523
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1232
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:2623
  82: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1788
  83: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
             at /home/oliver/Projects/rust/rust4/src/liballoc/vec.rs:1700
             at /home/oliver/Projects/rust/rust4/src/libcore/result.rs:1249
             at /home/oliver/Projects/rust/rust4/src/libcore/iter/iterator.rs:1476
             at librustc/traits/select.rs:1374
  84: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:1216
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  85: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  86: rustc::traits::select::SelectionContext::candidate_from_obligation
             at librustc/traits/select.rs:1216
  87: rustc::traits::select::SelectionContext::select
             at librustc/traits/select.rs:597
  88: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:1056
             at librustc/infer/mod.rs:822
  89: rustc::traits::project::opt_normalize_projection_type
             at librustc/traits/project.rs:1055
             at librustc/traits/project.rs:914
             at librustc/traits/project.rs:642
  90: rustc::traits::project::project_and_unify_type
             at librustc/traits/project.rs:246
  91: rustc::infer::InferCtxt::commit_if_ok
             at librustc/traits/project.rs:210
             at librustc/infer/mod.rs:822
  92: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/project.rs:205
             at librustc/traits/select.rs:825
  93: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854
  94: rustc::traits::select::SelectionContext::evaluate_candidate
             at librustc/traits/select.rs:559
             at librustc/traits/select.rs:1088
  95: rustc::traits::select::SelectionContext::evaluate_stack
             at librustc/traits/select.rs:1044
  96: rustc::dep_graph::graph::DepGraph::with_anon_task
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:1237
             at librustc/dep_graph/graph.rs:378
  97: rustc::traits::select::SelectionContext::in_task
             at librustc/traits/select.rs:1235
  98: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
             at librustc/traits/select.rs:915
             at librustc/traits/select.rs:698
  99: rustc::infer::InferCtxt::probe
             at librustc/traits/select.rs:671
             at librustc/traits/select.rs:1091
             at librustc/traits/select.rs:559
             at librustc/infer/mod.rs:854

I managed to get that one failure ironed out, now rustdoc is failing with

error: `[grouped_by]` cannot be resolved, ignoring it...                                                                                                        
   --> diesel/src/associations/mod.rs:204:6                                                                                                                     
    |                                                                                                                                                           
204 | //! [`grouped_by`] is called on a `Vec<Child>` with a `&[Parent]`.                                                                                        
    |      ^^^^^^^^^^^^ cannot be resolved, ignoring                                                                                                            
    |                                                                                                                                                           
note: lint level defined here                                                                                                                                   
   --> diesel/src/lib.rs:131:9                                                                                                                                  
    |                                                                                                                                                           
131 | #![deny(warnings, missing_debug_implementations, missing_copy_implementations, missing_docs)]                                                             
    |         ^^^^^^^^                                                                                                                                          
    = note: #[deny(intra_doc_link_resolution_failure)] implied by #[deny(warnings)]                                                                             
    = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`

which I think is completely unrelated and should be fixed by diesel

I managed to get that one failure ironed out, now rustdoc is failing with …

Yes that's totally a issue with diesels documentation. I should have a patch for this somewhere in my local diesel clone, I will push that patch as soon as I've found it :wink:

visited for T-compiler triage. marking P-high. It has a PR and @oli-obk and @pnkfelix have been repeatedly trying to get it to land successfully...

This is going to be fixed in 1.30.1, which should be released in minutes.

I can confirm that this is fixed with the 1.30.1 release 🎉

So the backport landed before the original PR’s code in master ...???

I think I figured it out what happened. This indeed appears fixed on stable, but still exists on master to best of my knowledge

The fix was not landed in master, but this particular issue just doesn't exist on stable yet.

I've beta nominated and accepted https://github.com/rust-lang/rust/pull/55717 as well per the marking here (stable/beta regression).

Still needs a backport

55849 landed, so this is done, right?

Yep.

Was this page helpful?
0 / 5 - 0 ratings