Description
There are strong couplings between modules (e.g., Inference, Evaluation, and Name Resolution/path tree).
We need to decouple them.
Fix
Split each functionality into its own crate and abstract the interfaces between them.
Progress
syn-sem: Legacy facade and semantic analyzer that still exposes the old syntax, semantic tree, and evaluation APIs.
syn-sem-common: Shared infrastructure for extracted crates, including contexts, string interning, source paths/text, and virtual/physical source storage.
syn-sem-macros: Small procedural macro crate for extracted crates.
syn-sem-ast: Lifetime-bearing semantic AST layer that converts and stores syn syntax nodes for later phases.
syn-sem-name: AST-agnostic name-resolution model for definitions, scopes, namespaces, imports, visibility, and lookup.
syn-sem-pr: Program represent layer that exposes AST nodes, definitions, scopes, and others for later phases.
syn-sem-top: Temporary top-level orchestration crate that wires extracted phases together through TopCx::analyze and Semantics.
Description
There are strong couplings between modules (e.g., Inference, Evaluation, and Name Resolution/path tree).
We need to decouple them.
Fix
Split each functionality into its own crate and abstract the interfaces between them.
Progress
syn-sem: Legacy facade and semantic analyzer that still exposes the old syntax, semantic tree, and evaluation APIs.syn-sem-common: Shared infrastructure for extracted crates, including contexts, string interning, source paths/text, and virtual/physical source storage.syn-sem-macros: Small procedural macro crate for extracted crates.syn-sem-ast: Lifetime-bearing semantic AST layer that converts and storessynsyntax nodes for later phases.syn-sem-name: AST-agnostic name-resolution model for definitions, scopes, namespaces, imports, visibility, and lookup.syn-sem-pr: Program represent layer that exposes AST nodes, definitions, scopes, and others for later phases.syn-sem-top: Temporary top-level orchestration crate that wires extracted phases together throughTopCx::analyzeandSemantics.