Skip to content

Duplicate address

Cross-statement validation: each NewAt's address must be unique.

Implemented as a Forward dataflow analysis with a method-table impl for stmts.NewAt. The impl pulls each address arg via expect_const, builds a LocationAddress, and accumulates a seen-map on the interpreter. A second NewAt pinning the same address records a ValidationError.

Per-statement validation (const-foldability + range) is the precondition; when an arg is non-const, expect_const raises InterpreterError. The ValidationPass wrapper uses run_no_raise so any duplicates collected before that point are still reported.

DuplicateAddressValidation dataclass

DuplicateAddressValidation()

Bases: ValidationPass


              flowchart TD
              bloqade.gemini.common.validation.duplicate_address.DuplicateAddressValidation[DuplicateAddressValidation]

              

              click bloqade.gemini.common.validation.duplicate_address.DuplicateAddressValidation href "" "bloqade.gemini.common.validation.duplicate_address.DuplicateAddressValidation"
            

Report any pair of gemini.common.NewAt statements that pin the same physical address.