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 {
46 fn get_number() -> i32 { 0 }
47 fn get_struct() -> Struct { Struct { field: 0 } }
48 fn get_drop_struct() -> DropStruct { DropStruct { field: 0 } }
50 unsafe fn unsafe_fn() -> i32 { 0 }
54 let s2 = get_struct();
64 Enum::Struct { field: 0 };
85 unsafe { unsafe_fn() };
87 DropStruct { field: 0 };
90 DropEnum::Struct { field: 0 };
93 Struct { field: get_number() };
94 Struct { ..get_struct() };
95 Enum::Tuple(get_number());
96 Enum::Struct { field: get_number() };
100 (5, 6, get_number());
106 [42, 55][get_number() as usize];
107 (42, get_number()).1;
109 [42; 55][get_number() as usize];
113 DropTuple(get_number());
114 DropStruct { field: get_number() };
115 DropStruct { field: get_number() };
116 DropStruct { ..get_drop_struct() };
117 DropEnum::Tuple(get_number());
118 DropEnum::Struct { field: get_number() };