@@ -348,25 +348,28 @@ def delay(
348348 qubits_or_frames : AstConvertible | Iterable [AstConvertible ] | None = None ,
349349 ) -> Program :
350350 """Apply a delay to a set of qubits or frames."""
351- if isinstance (qubits_or_frames , Iterable ) and not any (True for _ in qubits_or_frames ):
352- return self
353- elif qubits_or_frames is None :
351+ if qubits_or_frames is None :
354352 ast_qubits_or_frames = []
355353 else :
356354 if not isinstance (qubits_or_frames , Iterable ):
357355 qubits_or_frames = [qubits_or_frames ]
356+ else :
357+ qubits_or_frames = list (qubits_or_frames )
358+ if len (qubits_or_frames ) == 0 :
359+ return self
358360 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
359361 ast_duration = to_ast (self , make_duration (time ))
360362 self ._add_statement (ast .DelayInstruction (ast_duration , ast_qubits_or_frames ))
361363 return self
362364
363365 def barrier (self , qubits_or_frames : Iterable [AstConvertible ] | None = None ) -> Program :
364366 """Apply a barrier to a set of qubits or frames."""
365- if isinstance (qubits_or_frames , Iterable ) and not any (True for _ in qubits_or_frames ):
366- return self
367- elif qubits_or_frames is None :
367+ if qubits_or_frames is None :
368368 ast_qubits_or_frames = []
369369 else :
370+ qubits_or_frames = list (qubits_or_frames )
371+ if len (qubits_or_frames ) == 0 :
372+ return self
370373 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
371374 self ._add_statement (ast .QuantumBarrier (ast_qubits_or_frames ))
372375 return self
0 commit comments