File tree 1 file changed +22
-0
lines changed
1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -90,3 +90,25 @@ pub fn vec_iterator_cast_deaggregate_fold(vec: Vec<Baz>) -> Vec<[u64; 4]> {
90
90
// correct.
91
91
vec. into_iter ( ) . map ( |e| unsafe { std:: mem:: transmute ( e) } ) . collect ( )
92
92
}
93
+
94
+ // CHECK-LABEL: @vec_iterator_cast_unwrap_drop
95
+ #[ no_mangle]
96
+ pub fn vec_iterator_cast_unwrap_drop ( vec : Vec < Wrapper < String > > ) -> Vec < String > {
97
+ // CHECK-NOT: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}
98
+ // CHECK-NOT: call
99
+ // CHECK-NOT: %{{.*}} = mul
100
+ // CHECK-NOT: %{{.*}} = udiv
101
+
102
+ vec. into_iter ( ) . map ( |Wrapper ( e) | e) . collect ( )
103
+ }
104
+
105
+ // CHECK-LABEL: @vec_iterator_cast_wrap_drop
106
+ #[ no_mangle]
107
+ pub fn vec_iterator_cast_wrap_drop ( vec : Vec < String > ) -> Vec < Wrapper < String > > {
108
+ // CHECK-NOT: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}
109
+ // CHECK-NOT: call
110
+ // CHECK-NOT: %{{.*}} = mul
111
+ // CHECK-NOT: %{{.*}} = udiv
112
+
113
+ vec. into_iter ( ) . map ( Wrapper ) . collect ( )
114
+ }
You can’t perform that action at this time.
0 commit comments