33from kirin import interp
44from kirin .dialects import ilist
55
6- from bloqade .squin import qubit
6+ from bloqade .qubit import stmts as qubit
77from bloqade .pyqrack .reg import QubitState , Measurement , PyQrackQubit
88from bloqade .pyqrack .base import PyQrackInterpreter
99
@@ -27,38 +27,32 @@ def _measure_qubit(self, qbit: PyQrackQubit, interp: PyQrackInterpreter):
2727 interp .set_global_measurement_id (m )
2828 return m
2929
30- @interp .impl (qubit .MeasureQubitList )
30+ @interp .impl (qubit .Measure )
3131 def measure_qubit_list (
3232 self ,
3333 interp : PyQrackInterpreter ,
3434 frame : interp .Frame ,
35- stmt : qubit .MeasureQubitList ,
35+ stmt : qubit .Measure ,
3636 ):
3737 qubits : ilist .IList [PyQrackQubit , Any ] = frame .get (stmt .qubits )
3838 result = ilist .IList ([self ._measure_qubit (qbit , interp ) for qbit in qubits ])
3939 return (result ,)
4040
41- @interp .impl (qubit .MeasureQubit )
42- def measure_qubit (
43- self , interp : PyQrackInterpreter , frame : interp .Frame , stmt : qubit .MeasureQubit
44- ):
45- qbit : PyQrackQubit = frame .get (stmt .qubit )
46- result = self ._measure_qubit (qbit , interp )
47- return (result ,)
48-
4941 @interp .impl (qubit .QubitId )
5042 def qubit_id (
5143 self , interp : PyQrackInterpreter , frame : interp .Frame , stmt : qubit .QubitId
5244 ):
53- qbit : PyQrackQubit = frame .get (stmt .qubit )
54- return (qbit .addr ,)
45+ qubits : ilist .IList [PyQrackQubit , Any ] = frame .get (stmt .qubits )
46+ ids = ilist .IList ([qbit .addr for qbit in qubits ])
47+ return (ids ,)
5548
5649 @interp .impl (qubit .MeasurementId )
5750 def measurement_id (
5851 self , interp : PyQrackInterpreter , frame : interp .Frame , stmt : qubit .MeasurementId
5952 ):
60- measurement : Measurement = frame .get (stmt .measurement )
61- return (measurement .measurement_id ,)
53+ measurements : ilist .IList [Measurement , Any ] = frame .get (stmt .measurements )
54+ ids = ilist .IList ([measurement .measurement_id for measurement in measurements ])
55+ return (ids ,)
6256
6357 @interp .impl (qubit .Reset )
6458 def reset (self , interp : PyQrackInterpreter , frame : interp .Frame , stmt : qubit .Reset ):
0 commit comments