@@ -348,25 +348,28 @@ def delay(
348
348
qubits_or_frames : AstConvertible | Iterable [AstConvertible ] | None = None ,
349
349
) -> Program :
350
350
"""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 :
354
352
ast_qubits_or_frames = []
355
353
else :
356
354
if not isinstance (qubits_or_frames , Iterable ):
357
355
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
358
360
ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
359
361
ast_duration = to_ast (self , make_duration (time ))
360
362
self ._add_statement (ast .DelayInstruction (ast_duration , ast_qubits_or_frames ))
361
363
return self
362
364
363
365
def barrier (self , qubits_or_frames : Iterable [AstConvertible ] | None = None ) -> Program :
364
366
"""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 :
368
368
ast_qubits_or_frames = []
369
369
else :
370
+ qubits_or_frames = list (qubits_or_frames )
371
+ if len (qubits_or_frames ) == 0 :
372
+ return self
370
373
ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
371
374
self ._add_statement (ast .QuantumBarrier (ast_qubits_or_frames ))
372
375
return self
0 commit comments