#![feature(plugin, box_syntax, inclusive_range_syntax)] #![plugin(clippy)] #![deny(no_effect, unnecessary_operation)] #![allow(dead_code)] #![allow(path_statements)] #![feature(untagged_unions)] struct Unit; struct Tuple(i32); struct Struct { field: i32 } enum Enum { Tuple(i32), Struct { field: i32 }, } union Union { a: u8, b: f64, } fn get_number() -> i32 { 0 } fn get_struct() -> Struct { Struct { field: 0 } } unsafe fn unsafe_fn() -> i32 { 0 } fn main() { let s = get_struct(); let s2 = get_struct(); 0; //~ERROR statement with no effect s2; //~ERROR statement with no effect Unit; //~ERROR statement with no effect Tuple(0); //~ERROR statement with no effect Struct { field: 0 }; //~ERROR statement with no effect Struct { ..s }; //~ERROR statement with no effect Union { a: 0 }; //~ERROR statement with no effect Enum::Tuple(0); //~ERROR statement with no effect Enum::Struct { field: 0 }; //~ERROR statement with no effect 5 + 6; //~ERROR statement with no effect *&42; //~ERROR statement with no effect &6; //~ERROR statement with no effect (5, 6, 7); //~ERROR statement with no effect box 42; //~ERROR statement with no effect ..; //~ERROR statement with no effect 5..; //~ERROR statement with no effect ..5; //~ERROR statement with no effect 5..6; //~ERROR statement with no effect 5...6; //~ERROR statement with no effect [42, 55]; //~ERROR statement with no effect [42, 55][1]; //~ERROR statement with no effect (42, 55).1; //~ERROR statement with no effect [42; 55]; //~ERROR statement with no effect [42; 55][13]; //~ERROR statement with no effect let mut x = 0; || x += 5; //~ERROR statement with no effect // Do not warn get_number(); unsafe { unsafe_fn() }; Tuple(get_number()); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); Struct { field: get_number() }; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); Struct { ..get_struct() }; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_struct(); Enum::Tuple(get_number()); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); Enum::Struct { field: get_number() }; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); 5 + get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION 5;get_number(); *&get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); &get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); (5, 6, get_number()); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION 5;6;get_number(); box get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); get_number()..; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); ..get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); 5..get_number(); //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION 5;get_number(); [42, get_number()]; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION 42;get_number(); [42, 55][get_number() as usize]; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION [42, 55];get_number() as usize; (42, get_number()).1; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION 42;get_number(); [get_number(); 55]; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); [42; 55][get_number() as usize]; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION [42; 55];get_number() as usize; {get_number()}; //~ERROR statement can be reduced //~^HELP replace it with //~|SUGGESTION get_number(); }