Skip to main content
The Rust extractor maps tree-sitter Rust CST nodes to canonical concepts. It detects structural changes at the item level: functions, structs, enums, traits, and their members.

Detected concepts

Example

Two versions of a Rust module. One renames a function and adds a struct field:
old.rs
new.rs
Running differens old.rs new.rs:

Known limitations

  • Macro expansion is not followed. The extractor works on the surface AST, so code generated by macros (derive, proc macros) is invisible to the diff.
  • impl blocks use the Impl concept, and their function items remain Function nodes. The matcher uses syntax and context; it does not resolve trait implementations or apply Rust orphan rules.
  • Attributes have Attribute or InnerAttribute nodes. JSON keeps their edits; human reports may group them under a declaration.