Skip to content

Commit d2f0158

Browse files
Separate if state in two parts, to avoid "missing c_targets" message
1 parent d7066ad commit d2f0158

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ __pycache__/
99
.mypy_cache/
1010
.pytest_cache/
1111
.dockerenv
12-
.env
12+
.env
13+
.idea/

mpqp/core/circuit.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,15 @@ def add(self, instruction: Instruction | Iterable[Instruction]):
148148
if any(qb >= self.nb_qubits for qb in instruction.controls):
149149
raise NumberQubitsError("Control targets qubit outside of circuit")
150150

151-
if isinstance(instruction, BasisMeasure) and instruction.c_targets is None:
152-
if self.nb_cbits is None:
153-
self.nb_cbits = 0
154-
instruction.c_targets = [
155-
self.nb_cbits + i for i in range(len(instruction.targets))
156-
]
157-
self.nb_cbits += len(instruction.c_targets)
151+
if isinstance(instruction, BasisMeasure):
152+
# has to be done in two steps, because Pycharm's type checker is unable to understand chained type inference
153+
if instruction.c_targets is None:
154+
if self.nb_cbits is None:
155+
self.nb_cbits = 0
156+
instruction.c_targets = [
157+
self.nb_cbits + i for i in range(len(instruction.targets))
158+
]
159+
self.nb_cbits += len(instruction.c_targets)
158160

159161
if isinstance(instruction, Barrier):
160162
instruction.size = self.nb_qubits

0 commit comments

Comments
 (0)