]> git.lizzy.rs Git - rust.git/blob - tests/rustdoc/issue-56701.rs
Rollup merge of #106470 - ehuss:tidy-no-wasm, r=Mark-Simulacrum
[rust.git] / tests / rustdoc / issue-56701.rs
1 // This shouldn't cause a stack overflow when rustdoc is run
2
3 use std::ops::Deref;
4 use std::ops::DerefMut;
5
6 pub trait SimpleTrait {
7     type SimpleT;
8 }
9
10 impl<Inner: SimpleTrait, Outer: Deref<Target = Inner>> SimpleTrait for Outer {
11     type SimpleT = Inner::SimpleT;
12 }
13
14 pub trait AnotherTrait {
15     type AnotherT;
16 }
17
18 impl<T, Simple: SimpleTrait<SimpleT = Vec<T>>> AnotherTrait for Simple {
19     type AnotherT = T;
20 }
21
22 pub struct Unrelated<Inner, UnrelatedT: DerefMut<Target = Vec<Inner>>>(UnrelatedT);
23
24 impl<Inner, UnrelatedT: DerefMut<Target = Vec<Inner>>> Deref for Unrelated<Inner, UnrelatedT> {
25     type Target = Vec<Inner>;
26
27     fn deref(&self) -> &Self::Target {
28         &self.0
29     }
30 }
31
32
33 pub fn main() { }