Skip to content

Provide one canonical frontend AST traversal interface #399

Description

@arniber21

What to build

Add a canonical exhaustive AST traversal interface in the frontend and migrate read-only tooling walkers to it. Future AST variants should require one traversal update rather than independent hand-written recursion in the linter and language server.

Acceptance criteria

  • The frontend exposes exhaustive traversal for declarations, expressions, statements, patterns, types, and type-level expressions.
  • Traversal supports pre/post hooks and preserves source spans.
  • quonlint and applicable quon_lsp intelligence features use the shared traversal.
  • Formatting keeps only the structural recursion needed for layout decisions and shares traversal helpers where semantics permit.
  • A synthetic new-node test demonstrates that nested nodes are visited consistently by migrated consumers.

Blocked by

None - can start immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    compilerFrontend / MLIR passes, type system, language semanticsdev-toolingEditor extensions, LSP, formatter, linter, watch/CI toolingenhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions