pyfcstm.diagnostics.analyzers.combo

Combo-trigger provenance diagnostics.

This module analyzes generated combo-trigger edges while reporting every diagnostic against the user-authored combo trigger term that produced the generated edge. Solver-backed guard diagnostics are Python-only by design; jsfcstm consumes them from inspect JSON instead of re-implementing local solver approximations. The analyzer intentionally stays conservative around side effects: prefix-sensitive guard warnings are skipped whenever lifecycle actions, transition effects, or opaque actions may write a variable read by the guard prefix.

The module contains:

Example:

>>> collect_combo_warnings(None)
[]

collect_combo_warnings

pyfcstm.diagnostics.analyzers.combo.collect_combo_warnings(machine: StateMachine | None) List[ModelDiagnostic][source]

Collect diagnostics tied to combo trigger provenance.

The returned diagnostics use ModelDiagnostic.span for the primary original combo term and keep related term spans in refs so editor integrations can navigate to the first duplicate event or prior guard.

Parameters:

machine (pyfcstm.model.StateMachine, optional) – State machine to inspect, or None to emit no diagnostics.

Returns:

Combo provenance diagnostics.

Return type:

List[pyfcstm.utils.validate.ModelDiagnostic]

Example:

>>> collect_combo_warnings(None)
[]