@@ -340,25 +340,28 @@ def delay(
340
340
qubits_or_frames : AstConvertible | Iterable [AstConvertible ] | None = None ,
341
341
) -> Program :
342
342
"""Apply a delay to a set of qubits or frames."""
343
- if isinstance (qubits_or_frames , Iterable ) and not any (True for _ in qubits_or_frames ):
344
- return self
345
- elif qubits_or_frames is None :
343
+ if qubits_or_frames is None :
346
344
ast_qubits_or_frames = []
347
345
else :
348
346
if not isinstance (qubits_or_frames , Iterable ):
349
347
qubits_or_frames = [qubits_or_frames ]
348
+ else :
349
+ qubits_or_frames = list (qubits_or_frames )
350
+ if len (qubits_or_frames ) == 0 :
351
+ return self
350
352
ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
351
353
ast_duration = to_ast (self , make_duration (time ))
352
354
self ._add_statement (ast .DelayInstruction (ast_duration , ast_qubits_or_frames ))
353
355
return self
354
356
355
357
def barrier (self , qubits_or_frames : Iterable [AstConvertible ] | None = None ) -> Program :
356
358
"""Apply a barrier to a set of qubits or frames."""
357
- if isinstance (qubits_or_frames , Iterable ) and not any (True for _ in qubits_or_frames ):
358
- return self
359
- elif qubits_or_frames is None :
359
+ if qubits_or_frames is None :
360
360
ast_qubits_or_frames = []
361
361
else :
362
+ qubits_or_frames = list (qubits_or_frames )
363
+ if len (qubits_or_frames ) == 0 :
364
+ return self
362
365
ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
363
366
self ._add_statement (ast .QuantumBarrier (ast_qubits_or_frames ))
364
367
return self
0 commit comments