1 #![feature(plugin, box_syntax, inclusive_range_syntax)]
4 #![warn(no_effect, unnecessary_operation)]
6 #![allow(path_statements)]
7 #![allow(deref_addrof)]
8 #![feature(untagged_unions)]
17 Struct { field: i32 },
20 impl Drop for DropUnit {
26 impl Drop for DropStruct {
29 struct DropTuple(i32);
30 impl Drop for DropTuple {
35 Struct { field: i32 },
37 impl Drop for DropEnum {
48 fn get_number() -> i32 { 0 }
49 fn get_struct() -> Struct { Struct { field: 0 } }
50 fn get_drop_struct() -> DropStruct { DropStruct { field: 0 } }
52 unsafe fn unsafe_fn() -> i32 { 0 }
56 let s2 = get_struct();
66 Enum::Struct { field: 0 };
84 let s: String = "foo".into();
89 unsafe { unsafe_fn() };
91 DropStruct { field: 0 };
94 DropEnum::Struct { field: 0 };
97 Struct { field: get_number() };
98 Struct { ..get_struct() };
99 Enum::Tuple(get_number());
100 Enum::Struct { field: get_number() };
104 (5, 6, get_number());
110 [42, 55][get_number() as usize];
111 (42, get_number()).1;
113 [42; 55][get_number() as usize];
115 FooString { s: String::from("blah"), };
118 DropTuple(get_number());
119 DropStruct { field: get_number() };
120 DropStruct { field: get_number() };
121 DropStruct { ..get_drop_struct() };
122 DropEnum::Tuple(get_number());
123 DropEnum::Struct { field: get_number() };