@@ -139,11 +139,7 @@ fn memset_dynamic_scalar(
139139 . def ( builder. span ( ) , builder) ;
140140 let composite = builder
141141 . 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) )
147143 . unwrap ( ) ;
148144 let result_type = if is_float {
149145 SpirvType :: Float ( byte_width as u32 * 8 )
@@ -252,18 +248,15 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
252248 let elem_pat = self . memset_const_pattern ( & self . lookup_type ( element) , fill_byte) ;
253249 self . constant_composite (
254250 ty. def ( self . span ( ) , self ) ,
255- iter:: repeat ( elem_pat) . take ( count as usize ) ,
251+ iter:: repeat_n ( elem_pat, count as usize ) ,
256252 )
257253 . def ( self )
258254 }
259255 SpirvType :: Array { element, count } => {
260256 let elem_pat = self . memset_const_pattern ( & self . lookup_type ( element) , fill_byte) ;
261257 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 )
267260 }
268261 SpirvType :: RuntimeArray { .. } => {
269262 self . fatal ( "memset on runtime arrays not implemented yet" )
@@ -308,7 +301,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
308301 . composite_construct (
309302 ty. def ( self . span ( ) , self ) ,
310303 None ,
311- iter:: repeat ( elem_pat) . take ( count) ,
304+ iter:: repeat_n ( elem_pat, count) ,
312305 )
313306 . unwrap ( )
314307 }
@@ -318,7 +311,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
318311 . composite_construct (
319312 ty. def ( self . span ( ) , self ) ,
320313 None ,
321- iter:: repeat ( elem_pat) . take ( count as usize ) ,
314+ iter:: repeat_n ( elem_pat, count as usize ) ,
322315 )
323316 . unwrap ( )
324317 }
@@ -2806,14 +2799,10 @@ impl<'a, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'tcx> {
28062799 }
28072800 . def ( self . span ( ) , self ) ;
28082801 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) )
28102803 } else {
28112804 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) )
28172806 . unwrap ( )
28182807 . with_type ( result_type)
28192808 }
0 commit comments