1 #![feature(box_syntax)]
4 #![warn(no_effect, unnecessary_operation)]
6 #![allow(path_statements)]
7 #![allow(deref_addrof)]
8 #![allow(redundant_field_names)]
9 #![feature(untagged_unions)]
18 Struct { field: i32 },
21 impl Drop for DropUnit {
27 impl Drop for DropStruct {
30 struct DropTuple(i32);
31 impl Drop for DropTuple {
36 Struct { field: i32 },
38 impl Drop for DropEnum {
49 fn get_number() -> i32 { 0 }
50 fn get_struct() -> Struct { Struct { field: 0 } }
51 fn get_drop_struct() -> DropStruct { DropStruct { field: 0 } }
53 unsafe fn unsafe_fn() -> i32 { 0 }
57 let s2 = get_struct();
67 Enum::Struct { field: 0 };
85 let s: String = "foo".into();
90 unsafe { unsafe_fn() };
92 DropStruct { field: 0 };
95 DropEnum::Struct { field: 0 };
98 Struct { field: get_number() };
99 Struct { ..get_struct() };
100 Enum::Tuple(get_number());
101 Enum::Struct { field: get_number() };
105 (5, 6, get_number());
111 [42, 55][get_number() as usize];
112 (42, get_number()).1;
114 [42; 55][get_number() as usize];
116 FooString { s: String::from("blah"), };
119 DropTuple(get_number());
120 DropStruct { field: get_number() };
121 DropStruct { field: get_number() };
122 DropStruct { ..get_drop_struct() };
123 DropEnum::Tuple(get_number());
124 DropEnum::Struct { field: get_number() };