#![allow(dead_code)] #![deny(unused_results, unused_must_use)] //~^ NOTE: the lint level is defined here //~| NOTE: the lint level is defined here #[must_use] enum MustUse { Test } #[must_use = "some message"] enum MustUseMsg { Test2 } fn foo() -> T { panic!() } fn bar() -> isize { return foo::(); } fn baz() -> MustUse { return foo::(); } fn qux() -> MustUseMsg { return foo::(); } #[allow(unused_results)] fn test() { foo::(); foo::(); //~ ERROR: unused `MustUse` that must be used foo::(); //~ ERROR: unused `MustUseMsg` that must be used //~^ NOTE: some message } #[allow(unused_results, unused_must_use)] fn test2() { foo::(); foo::(); foo::(); } fn main() { foo::(); //~ ERROR: unused result of type `isize` foo::(); //~ ERROR: unused `MustUse` that must be used foo::(); //~ ERROR: unused `MustUseMsg` that must be used //~^ NOTE: some message let _ = foo::(); let _ = foo::(); let _ = foo::(); }