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. --<!-- 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. --: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongBacktrace</strong</summary<p</p</details
label A-synthetic-impls A-auto-traits T-compiler The bug originates in which lives in , so having both team labels is valid.
Bisection seems to point to nightly-2022-10-24, one of these:
Out of those, looks the most likely (from ).
I can no longer reproduce this. Fixed: ICE → errors. Probably fixed by one of those PRs that made rustdoc run more of rustc's passes.

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>