@@ -340,25 +340,28 @@ def delay(
340340 qubits_or_frames : AstConvertible | Iterable [AstConvertible ] | None = None ,
341341 ) -> Program :
342342 """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 :
346344 ast_qubits_or_frames = []
347345 else :
348346 if not isinstance (qubits_or_frames , Iterable ):
349347 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
350352 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
351353 ast_duration = to_ast (self , make_duration (time ))
352354 self ._add_statement (ast .DelayInstruction (ast_duration , ast_qubits_or_frames ))
353355 return self
354356
355357 def barrier (self , qubits_or_frames : Iterable [AstConvertible ] | None = None ) -> Program :
356358 """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 :
360360 ast_qubits_or_frames = []
361361 else :
362+ qubits_or_frames = list (qubits_or_frames )
363+ if len (qubits_or_frames ) == 0 :
364+ return self
362365 ast_qubits_or_frames = map_to_ast (self , qubits_or_frames )
363366 self ._add_statement (ast .QuantumBarrier (ast_qubits_or_frames ))
364367 return self
0 commit comments