]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-20413.rs
point at private fields in struct literal
[rust.git] / src / test / ui / issues / issue-20413.rs
1 trait Foo {
2   fn answer(self);
3 }
4
5 struct NoData<T>;
6 //~^ ERROR: parameter `T` is never used
7
8 impl<T> Foo for T where NoData<T>: Foo {
9   //~^ ERROR: overflow evaluating the requirement
10   //~| ERROR: overflow evaluating the requirement
11   fn answer(self) {
12     let val: NoData<T> = NoData;
13   }
14 }
15
16 trait Bar {
17   fn answer(self);
18 }
19
20 trait Baz {
21   fn answer(self);
22 }
23
24 struct AlmostNoData<T>(Option<T>);
25
26 struct EvenLessData<T>(Option<T>);
27
28 impl<T> Bar for T where EvenLessData<T>: Baz {
29 //~^ ERROR: overflow evaluating the requirement
30 //~| ERROR: overflow evaluating the requirement
31   fn answer(self) {
32     let val: EvenLessData<T> = EvenLessData(None);
33   }
34 }
35
36 impl<T> Baz for T where AlmostNoData<T>: Bar {
37 //~^ ERROR: overflow evaluating the requirement
38 //~| ERROR: overflow evaluating the requirement
39   fn answer(self) {
40     let val: NoData<T> = AlmostNoData(None);
41   }
42 }
43
44 fn main() {}