Analysis
GeminiLogicalValidation
dataclass
GeminiLogicalValidation()
Bases: ValidationPass
flowchart TD
bloqade.gemini.logical.validation.clifford.analysis.GeminiLogicalValidation[GeminiLogicalValidation]
click bloqade.gemini.logical.validation.clifford.analysis.GeminiLogicalValidation href "" "bloqade.gemini.logical.validation.clifford.analysis.GeminiLogicalValidation"
Validates a logical gemini program.
Unresolved calls are reported by delegating to NoStaticCallValidation
rather than by an impl in impls.py. A func.Invoke impl only sees the
statements this Forward analysis reaches, and the scf.For impl
returns bottom without descending into the loop body -- so a call nested in a
loop was never visited. The delegate is a syntactic walk() and sees all
of them.
Delegating rather than composing the two passes side by side in every suite
keeps this pass a drop-in for callers who assemble their own
ValidationSuite, and stops a single unresolved call being counted twice.