]> git.proxmox.com Git - rustc.git/blob - src/test/ui/issues/issue-20413.rs
New upstream version 1.60.0+dfsg1
[rustc.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() {}