You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ground-up rebuild of codeanalyzer-rust as the CLDK schema-v2 backend: one additive CPG (L1 symbol table → L2 call graph → L3 intraprocedural dataflow → L4 interprocedural SDG) emitted as analysis.json + a Neo4j projection.
Design summary
Stack: rustc internals (HIR/THIR/MIR + TyCtxt) on a pinned nightly (Clippy/Flowistry pattern), bumped per Rust release.
Architecture: extractor + stable core — canrs-extractor (only nightly crate, runs as RUSTC_WORKSPACE_WRAPPER under cargo check) serializes versioned per-crate IR; canrs (stable) builds all levels from IR. Core tests run from recorded-IR fixtures on stable.
Schema (Rust expansion): seven typed entities (RsStruct, RsEnum, RsUnion, RsTrait, RsTypeAlias, RsImpl, RsMacro) over the kind-tagged v2 wire; unified impl-facet rule (methods live where the impl is written; facets keyed by target type, base_classes = [type, …traits]); macros first-class with from_macro attribution; closures materialized with rustc naming; fully-qualified signature paths; structured attributes; is_unsafe statement flag; unwind CFG edges for diverging sites only.
Ground-up rebuild of codeanalyzer-rust as the CLDK schema-v2 backend: one additive CPG (L1 symbol table → L2 call graph → L3 intraprocedural dataflow → L4 interprocedural SDG) emitted as analysis.json + a Neo4j projection.
Design summary
canrs-extractor(only nightly crate, runs as RUSTC_WORKSPACE_WRAPPER undercargo check) serializes versioned per-crate IR;canrs(stable) builds all levels from IR. Core tests run from recorded-IR fixtures on stable.Full spec: docs/superpowers/specs/2026-07-09-codeanalyzer-rust-v2-design.md (local drafting doc).
Milestones