#![feature(plugin, box_syntax, inclusive_range_syntax)]
-#![plugin(clippy)]
+
#![warn(no_effect, unnecessary_operation)]
#![allow(dead_code)]
Tuple(i32),
Struct { field: i32 },
}
-
+struct DropUnit;
+impl Drop for DropUnit {
+ fn drop(&mut self) {}
+}
+struct DropStruct {
+ field: i32
+}
+impl Drop for DropStruct {
+ fn drop(&mut self) {}
+}
+struct DropTuple(i32);
+impl Drop for DropTuple {
+ fn drop(&mut self) {}
+}
+enum DropEnum {
+ Tuple(i32),
+ Struct { field: i32 },
+}
+impl Drop for DropEnum {
+ fn drop(&mut self) {}
+}
+struct FooString {
+ s: String,
+}
union Union {
a: u8,
b: f64,
fn get_number() -> i32 { 0 }
fn get_struct() -> Struct { Struct { field: 0 } }
+fn get_drop_struct() -> DropStruct { DropStruct { field: 0 } }
unsafe fn unsafe_fn() -> i32 { 0 }
5..;
..5;
5..6;
- 5...6;
+ 5..=6;
[42, 55];
[42, 55][1];
(42, 55).1;
[42; 55][13];
let mut x = 0;
|| x += 5;
+ let s: String = "foo".into();
+ FooString { s: s };
// Do not warn
get_number();
unsafe { unsafe_fn() };
+ DropUnit;
+ DropStruct { field: 0 };
+ DropTuple(0);
+ DropEnum::Tuple(0);
+ DropEnum::Struct { field: 0 };
Tuple(get_number());
Struct { field: get_number() };
[get_number(); 55];
[42; 55][get_number() as usize];
{get_number()};
+ FooString { s: String::from("blah"), };
+
+ // Do not warn
+ DropTuple(get_number());
+ DropStruct { field: get_number() };
+ DropStruct { field: get_number() };
+ DropStruct { ..get_drop_struct() };
+ DropEnum::Tuple(get_number());
+ DropEnum::Struct { field: get_number() };
}