]> git.lizzy.rs Git - rust.git/blob - tests/ui/no_effect.rs
Update unnecessary_operation and no_effect to not suggest removing
[rust.git] / tests / ui / no_effect.rs
1 #![feature(plugin, box_syntax, inclusive_range_syntax)]
2 #![plugin(clippy)]
3
4 #![warn(no_effect, unnecessary_operation)]
5 #![allow(dead_code)]
6 #![allow(path_statements)]
7 #![allow(deref_addrof)]
8 #![feature(untagged_unions)]
9
10 struct Unit;
11 struct Tuple(i32);
12 struct Struct {
13     field: i32
14 }
15 enum Enum {
16     Tuple(i32),
17     Struct { field: i32 },
18 }
19 struct DropUnit;
20 impl Drop for DropUnit {
21     fn drop(&mut self) {}
22 }
23 struct DropStruct {
24     field: i32
25 }
26 impl Drop for DropStruct {
27     fn drop(&mut self) {}
28 }
29 struct DropTuple(i32);
30 impl Drop for DropTuple {
31     fn drop(&mut self) {}
32 }
33 enum DropEnum {
34     Tuple(i32),
35     Struct { field: i32 },
36 }
37 impl Drop for DropEnum {
38     fn drop(&mut self) {}
39 }
40
41 union Union {
42     a: u8,
43     b: f64,
44 }
45
46 fn get_number() -> i32 { 0 }
47 fn get_struct() -> Struct { Struct { field: 0 } }
48 fn get_drop_struct() -> DropStruct { DropStruct { field: 0 } }
49
50 unsafe fn unsafe_fn() -> i32 { 0 }
51
52 fn main() {
53     let s = get_struct();
54     let s2 = get_struct();
55
56     0;
57     s2;
58     Unit;
59     Tuple(0);
60     Struct { field: 0 };
61     Struct { ..s };
62     Union { a: 0 };
63     Enum::Tuple(0);
64     Enum::Struct { field: 0 };
65     5 + 6;
66     *&42;
67     &6;
68     (5, 6, 7);
69     box 42;
70     ..;
71     5..;
72     ..5;
73     5..6;
74     5...6;
75     [42, 55];
76     [42, 55][1];
77     (42, 55).1;
78     [42; 55];
79     [42; 55][13];
80     let mut x = 0;
81     || x += 5;
82
83     // Do not warn
84     get_number();
85     unsafe { unsafe_fn() };
86     DropUnit;
87     DropStruct { field: 0 };
88     DropTuple(0);
89     DropEnum::Tuple(0);
90     DropEnum::Struct { field: 0 };
91
92     Tuple(get_number());
93     Struct { field: get_number() };
94     Struct { ..get_struct() };
95     Enum::Tuple(get_number());
96     Enum::Struct { field: get_number() };
97     5 + get_number();
98     *&get_number();
99     &get_number();
100     (5, 6, get_number());
101     box get_number();
102     get_number()..;
103     ..get_number();
104     5..get_number();
105     [42, get_number()];
106     [42, 55][get_number() as usize];
107     (42, get_number()).1;
108     [get_number(); 55];
109     [42; 55][get_number() as usize];
110     {get_number()};
111
112     // Do not warn
113     DropTuple(get_number());
114     DropStruct { field: get_number() };
115     DropStruct { field: get_number() };
116     DropStruct { ..get_drop_struct() };
117     DropEnum::Tuple(get_number());
118     DropEnum::Struct { field: get_number() };
119 }