]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/unnecessary_operation.rs
New upstream version 1.67.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / unnecessary_operation.rs
1 // run-rustfix
2
3 #![feature(box_syntax)]
4 #![allow(clippy::deref_addrof, dead_code, unused, clippy::no_effect)]
5 #![warn(clippy::unnecessary_operation)]
6
7 struct Tuple(i32);
8 struct Struct {
9 field: i32,
10 }
11 enum Enum {
12 Tuple(i32),
13 Struct { field: i32 },
14 }
15 struct DropStruct {
16 field: i32,
17 }
18 impl Drop for DropStruct {
19 fn drop(&mut self) {}
20 }
21 struct DropTuple(i32);
22 impl Drop for DropTuple {
23 fn drop(&mut self) {}
24 }
25 enum DropEnum {
26 Tuple(i32),
27 Struct { field: i32 },
28 }
29 impl Drop for DropEnum {
30 fn drop(&mut self) {}
31 }
32 struct FooString {
33 s: String,
34 }
35
36 fn get_number() -> i32 {
37 0
38 }
39
40 fn get_usize() -> usize {
41 0
42 }
43 fn get_struct() -> Struct {
44 Struct { field: 0 }
45 }
46 fn get_drop_struct() -> DropStruct {
47 DropStruct { field: 0 }
48 }
49
50 fn main() {
51 Tuple(get_number());
52 Struct { field: get_number() };
53 Struct { ..get_struct() };
54 Enum::Tuple(get_number());
55 Enum::Struct { field: get_number() };
56 5 + get_number();
57 *&get_number();
58 &get_number();
59 (5, 6, get_number());
60 box get_number();
61 get_number()..;
62 ..get_number();
63 5..get_number();
64 [42, get_number()];
65 [42, 55][get_usize()];
66 (42, get_number()).1;
67 [get_number(); 55];
68 [42; 55][get_usize()];
69 {
70 get_number()
71 };
72 FooString {
73 s: String::from("blah"),
74 };
75
76 // Do not warn
77 DropTuple(get_number());
78 DropStruct { field: get_number() };
79 DropStruct { field: get_number() };
80 DropStruct { ..get_drop_struct() };
81 DropEnum::Tuple(get_number());
82 DropEnum::Struct { field: get_number() };
83
84 // Issue #9954
85 fn one() -> i8 {
86 1
87 }
88 macro_rules! use_expr {
89 ($($e:expr),*) => {{ $($e;)* }}
90 }
91 use_expr!(isize::MIN / -(one() as isize), i8::MIN / -one());
92 }