@@ -139,11 +139,7 @@ fn memset_dynamic_scalar(
139
139
. def ( builder. span ( ) , builder) ;
140
140
let composite = builder
141
141
. emit ( )
142
- . composite_construct (
143
- composite_type,
144
- None ,
145
- iter:: repeat ( fill_var) . take ( byte_width) ,
146
- )
142
+ . composite_construct ( composite_type, None , iter:: repeat_n ( fill_var, byte_width) )
147
143
. unwrap ( ) ;
148
144
let result_type = if is_float {
149
145
SpirvType :: Float ( byte_width as u32 * 8 )
@@ -252,18 +248,15 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
252
248
let elem_pat = self . memset_const_pattern ( & self . lookup_type ( element) , fill_byte) ;
253
249
self . constant_composite (
254
250
ty. def ( self . span ( ) , self ) ,
255
- iter:: repeat ( elem_pat) . take ( count as usize ) ,
251
+ iter:: repeat_n ( elem_pat, count as usize ) ,
256
252
)
257
253
. def ( self )
258
254
}
259
255
SpirvType :: Array { element, count } => {
260
256
let elem_pat = self . memset_const_pattern ( & self . lookup_type ( element) , fill_byte) ;
261
257
let count = self . builder . lookup_const_scalar ( count) . unwrap ( ) as usize ;
262
- self . constant_composite (
263
- ty. def ( self . span ( ) , self ) ,
264
- iter:: repeat ( elem_pat) . take ( count) ,
265
- )
266
- . def ( self )
258
+ self . constant_composite ( ty. def ( self . span ( ) , self ) , iter:: repeat_n ( elem_pat, count) )
259
+ . def ( self )
267
260
}
268
261
SpirvType :: RuntimeArray { .. } => {
269
262
self . fatal ( "memset on runtime arrays not implemented yet" )
@@ -308,7 +301,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
308
301
. composite_construct (
309
302
ty. def ( self . span ( ) , self ) ,
310
303
None ,
311
- iter:: repeat ( elem_pat) . take ( count) ,
304
+ iter:: repeat_n ( elem_pat, count) ,
312
305
)
313
306
. unwrap ( )
314
307
}
@@ -318,7 +311,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
318
311
. composite_construct (
319
312
ty. def ( self . span ( ) , self ) ,
320
313
None ,
321
- iter:: repeat ( elem_pat) . take ( count as usize ) ,
314
+ iter:: repeat_n ( elem_pat, count as usize ) ,
322
315
)
323
316
. unwrap ( )
324
317
}
@@ -2806,14 +2799,10 @@ impl<'a, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'tcx> {
2806
2799
}
2807
2800
. def ( self . span ( ) , self ) ;
2808
2801
if self . builder . lookup_const ( elt) . is_some ( ) {
2809
- self . constant_composite ( result_type, iter:: repeat ( elt. def ( self ) ) . take ( num_elts) )
2802
+ self . constant_composite ( result_type, iter:: repeat_n ( elt. def ( self ) , num_elts) )
2810
2803
} else {
2811
2804
self . emit ( )
2812
- . composite_construct (
2813
- result_type,
2814
- None ,
2815
- iter:: repeat ( elt. def ( self ) ) . take ( num_elts) ,
2816
- )
2805
+ . composite_construct ( result_type, None , iter:: repeat_n ( elt. def ( self ) , num_elts) )
2817
2806
. unwrap ( )
2818
2807
. with_type ( result_type)
2819
2808
}
0 commit comments