blob: 0aa751443a0804f482881df0108e432a7915f466 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#![deny(unused_must_use)]
#[must_use]
trait Critical {}
trait NotSoCritical {}
trait DecidedlyUnimportant {}
struct Anon;
impl Critical for Anon {}
impl NotSoCritical for Anon {}
impl DecidedlyUnimportant for Anon {}
fn get_critical() -> impl NotSoCritical + Critical + DecidedlyUnimportant {
Anon {}
}
fn get_boxed_critical() -> Box<dyn Critical> {
Box::new(Anon {})
}
fn get_nested_boxed_critical() -> Box<Box<dyn Critical>> {
Box::new(Box::new(Anon {}))
}
fn get_critical_tuple() -> (u32, Box<dyn Critical>, impl Critical, ()) {
(0, get_boxed_critical(), get_critical(), ())
}
fn main() {
get_critical(); //~ ERROR unused implementer of `Critical` that must be used
get_boxed_critical(); //~ ERROR unused boxed `Critical` trait object that must be used
get_nested_boxed_critical();
//~^ ERROR unused boxed boxed `Critical` trait object that must be used
get_critical_tuple(); //~ ERROR unused boxed `Critical` trait object in tuple element 1
//~^ ERROR unused implementer of `Critical` in tuple element 2
}
|