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
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:
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
Yep.
Most helpful comment
I can confirm that this is fixed with the 1.30.1 release 🎉