pub fn analyze(ast: &Ast) -> Vec<AnalysisError>Expand description
Run all analysis passes over ast and collect every diagnostic.
All passes always run to completion regardless of errors found by the
others; the returned Vec may contain diagnostics from multiple passes.
§Pass order (errors first, then warnings)
Errors: id_decorator → exhaustiveness → types → dead_end →
menu_structure (empty menus) → const_reassign
Warnings: top_level → labels → unreachable_label → menu_structure (single-option) →
empty_dialogue → duplicate_menu_dest → overwritten_assign →
unused_var → dead_branch → possible_typo
Opt-in: loop_detection (emits only for labels decorated with
@lint(check_loops))