Skip to content

bloqade.lanes.analysis.placement.exceptions

exceptions

bloqade.lanes.analysis.placement.exceptions

Exceptions raised by the placement analysis.

The placement analysis runs as a kirin Forward dataflow analysis. When it detects an infeasible or invalid placement it raises PlacementError rather than silently returning AtomState.bottom():

  • Under run (the pipeline’s no_raise=False path) the exception propagates with its detailed message, giving actionable feedback.
  • Under run_no_raise (no_raise=True) the Forward analysis catches it and degrades the whole method to bottom() — the same silent, best-effort behaviour as before, but without masking the cause when the caller opts in.

This is deliberately not used for input-guard checks (e.g. an incoming state that is not a ConcreteState): those merely reflect an error earlier in the analysis, so the offending state is forwarded through unchanged instead.