#![feature(box_syntax, fn_traits, unboxed_closures)] #![warn(clippy::no_effect_underscore_binding)] #![allow(dead_code)] #![allow(path_statements)] #![allow(clippy::deref_addrof)] #![allow(clippy::redundant_field_names)] #![feature(untagged_unions)] struct Unit; struct Tuple(i32); struct Struct { field: i32, } 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, } 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 } struct GreetStruct1; impl FnOnce<(&str,)> for GreetStruct1 { type Output = (); extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { println!("hello {}", who); } } struct GreetStruct2(); impl FnOnce<(&str,)> for GreetStruct2 { type Output = (); extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { println!("hello {}", who); } } struct GreetStruct3; impl FnOnce<(&str,)> for GreetStruct3 { type Output = (); extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { println!("hello {}", who); } } fn main() { let s = get_struct(); let s2 = get_struct(); 0; s2; Unit; Tuple(0); Struct { field: 0 }; Struct { ..s }; Union { a: 0 }; Enum::Tuple(0); Enum::Struct { field: 0 }; 5 + 6; *&42; &6; (5, 6, 7); box 42; ..; 5..; ..5; 5..6; 5..=6; [42, 55]; [42, 55][1]; (42, 55).1; [42; 55]; [42; 55][13]; let mut x = 0; || x += 5; let s: String = "foo".into(); FooString { s: s }; let _unused = 1; let _penguin = || println!("Some helpful closure"); let _duck = Struct { field: 0 }; let _cat = [2, 4, 6, 8][2]; #[allow(clippy::no_effect)] 0; // Do not warn get_number(); unsafe { unsafe_fn() }; let _used = get_struct(); let _x = vec![1]; DropUnit; DropStruct { field: 0 }; DropTuple(0); DropEnum::Tuple(0); DropEnum::Struct { field: 0 }; GreetStruct1("world"); GreetStruct2()("world"); GreetStruct3 {}("world"); }