Change:
<!-- Thank you for finding an Internal Compiler Error! If possible, try to provide a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for how to create smaller examples. --This is the least I've managed to reduce the code: <!-- If you're using the stable version of the compiler, you should also check if the bug also exists in the beta or nightly versions. --: With nightly version the compiler asks me to change the as follows: and now the error no longer occurs. After running the command, I get the following: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongBacktrace</strong</summary<pOutput seems the same </p</details
Related if not duplicate of one of: , , . label -needs-triage T-rustdoc A-auto-traits A-synthetic-impls
I can't seem to reproduce the ICE with and
Me neither, seems to have been fixed. Potentially by err's “ PR” or by one of the PRs that made rustdoc execute more of rustc's stages. Fixed: ICE → errors (unsatisfied bounds).

Discussion:
<ins> // We used to ICE here while trying to synthesize auto trait impls. // issue: 107715 //@ check-pass pub const N: usize = 1; pub struct MapType<K: Supertrait<V>, V> { _array: K::Array, } pub trait Subtrait: Supertrait<[u8; N]> {} pub trait Supertrait<V> { type Array: AnotherTrait<V>; } pub trait AnotherTrait<V> { const LENGTH: usize; } pub struct Container<S: Subtrait> { _x: MapType<S, [u8; N]>, } </ins>

<ins> // We used to ICE here while trying to synthesize auto trait impls. // issue: 114657 pub trait Foo { type FooType; } pub trait Bar<const A: usize>: Foo<FooType = <Self as Bar<A>>::BarType> { type BarType; } pub(crate) const B: usize = 5; pub trait Tec: Bar<B> {} pub struct Structure<C: Tec> { //~ ERROR the trait bound `C: Bar<5>` is not satisfied _field: C::BarType, //~ ERROR the trait bound `C: Bar<5>` is not satisfied } </ins>

<ins> error[E0277]: the trait bound `C: Bar<5>` is not satisfied --> $DIR/projections-in-super-trait-bound-unsatisfied.rs:16:1 | LL | pub struct Structure<C: Tec> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Bar<5>` is not implemented for `C` | help: consider further restricting this bound | LL | pub struct Structure<C: Tec + Bar<5>> { |                             ++++++++ error[E0277]: the trait bound `C: Bar<5>` is not satisfied --> $DIR/projections-in-super-trait-bound-unsatisfied.rs:17:13 | LL |     _field: C::BarType, |             ^^^^^^^^^^ the trait `Bar<5>` is not implemented for `C` | help: consider further restricting this bound | LL | pub struct Structure<C: Tec + Bar<5>> { |                             ++++++++ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`. </ins>

<ins> // We used to ICE here while trying to synthesize auto trait impls. // issue: 112828 struct Outer(Inner); struct Inner; unsafe impl<Q: Trait> Send for Inner {} //~^ ERROR the type parameter `Q` is not constrained by the impl trait, self type, or predicates trait Trait {} </ins>

<ins> error[E0207]: the type parameter `Q` is not constrained by the impl trait, self type, or predicates --> $DIR/unconstrained-param-in-impl-ambiguity.rs:7:13 | LL | unsafe impl<Q: Trait> Send for Inner {} |             ^ unconstrained type parameter error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0207`. </ins>