]> git.proxmox.com Git - rustc.git/blobdiff - src/tools/clippy/tests/ui/no_effect.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / no_effect.rs
index bef1fad4f69f992370672e58f72004d13c228d02..a037ac3cf0e11cfe2d8c02654b97f5858aeba97f 100644 (file)
@@ -1,5 +1,5 @@
 #![feature(plugin, box_syntax, inclusive_range_syntax)]
-#![plugin(clippy)]
+
 
 #![warn(no_effect, unnecessary_operation)]
 #![allow(dead_code)]
@@ -16,7 +16,30 @@ enum Enum {
     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,
@@ -24,6 +47,7 @@ union Union {
 
 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 }
 
@@ -49,7 +73,7 @@ fn main() {
     5..;
     ..5;
     5..6;
-    5...6;
+    5..=6;
     [42, 55];
     [42, 55][1];
     (42, 55).1;
@@ -57,10 +81,17 @@ fn main() {
     [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() };
@@ -81,4 +112,13 @@ fn main() {
     [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() };
 }