Skip to content

Commit 2bf369e

Browse files
committed
removed redundant method variable
1 parent a35636a commit 2bf369e

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

src/bloqade/analysis/validation/nocloning/analysis.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -59,29 +59,23 @@ def __init__(self, dialects):
5959
self._address_frame: ForwardFrame[Address] | None = None
6060
self._validation_errors: list[ValidationError] = []
6161

62-
def initialize(self):
63-
super().initialize()
64-
self._validation_errors = []
65-
return self
62+
def method_self(self, method: ir.Method) -> QubitValidation:
63+
return self.lattice.bottom()
6664

6765
def run_method(
6866
self, method: ir.Method, args: tuple[QubitValidation, ...]
6967
) -> tuple[ForwardFrame[QubitValidation], QubitValidation]:
7068
if self._address_frame is None:
71-
if getattr(self, "_address_analysis", None) is None:
72-
addr_analysis = AddressAnalysis(self.dialects)
73-
addr_analysis.initialize()
74-
self._address_analysis = addr_analysis
75-
76-
self._address_frame, _ = self._address_analysis.run_analysis(method)
69+
addr_analysis = AddressAnalysis(self.dialects)
70+
addr_analysis.initialize()
71+
self._address_frame, _ = addr_analysis.run_analysis(method)
7772

7873
return self.run_callable(method.code, args)
7974

8075
def eval_stmt_fallback(
8176
self, frame: ForwardFrame[QubitValidation], stmt: ir.Statement
8277
) -> tuple[QubitValidation, ...]:
8378
"""Check for qubit usage violations."""
84-
8579
if not isinstance(stmt, func.Invoke):
8680
return tuple(Bottom() for _ in stmt.results)
8781

@@ -173,7 +167,6 @@ class NoCloningValidation(ValidationPass):
173167
"""Validates the no-cloning theorem by tracking qubit addresses."""
174168

175169
def __init__(self):
176-
self.method: ir.Method | None = None
177170
self._analysis: _NoCloningAnalysis | None = None
178171
self._cached_address_frame = None
179172

@@ -198,22 +191,18 @@ def run(self, method: ir.Method) -> tuple[Any, list[ValidationError]]:
198191
if self._analysis is None:
199192
self._analysis = _NoCloningAnalysis(method.dialects)
200193

201-
self.method = method
202194
self._analysis.initialize()
203195
if self._cached_address_frame is not None:
204196
self._analysis._address_frame = self._cached_address_frame
205-
frame, _ = self._analysis.run_analysis(method, args=None)
197+
frame, _ = self._analysis.run_analysis(method)
206198

207199
return frame, self._analysis._validation_errors
208200

209201
def print_validation_errors(self):
210202
"""Print all collected errors with formatted snippets."""
211203
if self._analysis is None:
212204
return
213-
errors = self._analysis._validation_errors
214-
if not errors:
215-
return
216-
for err in errors:
205+
for err in self._analysis._validation_errors:
217206
if isinstance(err, QubitValidationError):
218207
print(
219208
f"\n\033[31mError\033[0m: Cloning qubit [{err.qubit_id}] at {err.gate_name} gate"

0 commit comments

Comments
 (0)