2 #![deny(unused_results, unused_must_use)]
3 //~^ NOTE: the lint level is defined here
4 //~| NOTE: the lint level is defined here
9 #[must_use = "some message"]
10 enum MustUseMsg { Test2 }
12 fn foo<T>() -> T { panic!() }
14 fn bar() -> isize { return foo::<isize>(); }
15 fn baz() -> MustUse { return foo::<MustUse>(); }
16 fn qux() -> MustUseMsg { return foo::<MustUseMsg>(); }
18 #[allow(unused_results)]
21 foo::<MustUse>(); //~ ERROR: unused `MustUse` that must be used
22 foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` that must be used
23 //~^ NOTE: some message
26 #[allow(unused_results, unused_must_use)]
34 foo::<isize>(); //~ ERROR: unused result of type `isize`
35 foo::<MustUse>(); //~ ERROR: unused `MustUse` that must be used
36 foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` that must be used
37 //~^ NOTE: some message
39 let _ = foo::<isize>();
40 let _ = foo::<MustUse>();
41 let _ = foo::<MustUseMsg>();