@@ -389,25 +389,29 @@ def delay(
389389 qubits_or_frames : AstConvertible | Iterable [AstConvertible ] | None = None ,
390390 ) -> Program :
391391 """Apply a delay to a set of qubits or frames."""
392- if isinstance ( qubits_or_frames , Iterable ) and not any ( True for _ in qubits_or_frames ):
393- return self
394- elif qubits_or_frames is None :
392+ ast_duration = to_ast ( self , convert_float_to_duration ( time ))
393+
394+ if qubits_or_frames is None :
395395 ast_qubits_or_frames = []
396396 else :
397397 if not isinstance (qubits_or_frames , Iterable ):
398398 qubits_or_frames = [qubits_or_frames ]
399+ else :
400+ qubits_or_frames = list (qubits_or_frames )
401+ if len (qubits_or_frames ) == 0 :
402+ return self
399403 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
400- ast_duration = to_ast (self , convert_float_to_duration (time ))
401404 self ._add_statement (ast .DelayInstruction (ast_duration , ast_qubits_or_frames ))
402405 return self
403406
404407 def barrier (self , qubits_or_frames : Iterable [AstConvertible ] | None = None ) -> Program :
405408 """Apply a barrier to a set of qubits or frames."""
406- if isinstance (qubits_or_frames , Iterable ) and not any (True for _ in qubits_or_frames ):
407- return self
408- elif qubits_or_frames is None :
409+ if qubits_or_frames is None :
409410 ast_qubits_or_frames = []
410411 else :
412+ qubits_or_frames = list (qubits_or_frames )
413+ if len (qubits_or_frames ) == 0 :
414+ return self
411415 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
412416 self ._add_statement (ast .QuantumBarrier (ast_qubits_or_frames ))
413417 return self
0 commit comments