Skip to content

0.4.0

Choose a tag to compare

@SanderMuller SanderMuller released this 18 Jul 13:45
Immutable release. Only release title and notes can be modified.

Fixed

  • Pure renames are now visible. Moving a class file without editing it produces a 100%-similarity rename in the diff — a section with rename from/rename to metadata and no hunks. The parser previously ignored those sections entirely, so richter:detect-changes reported no impact for a change that breaks every caller of the old FQCN. The parser now registers hunk-less rename sections, and the analysis treats them as what they are: a class-level change that seeds both sides — the vanished old FQCN directly (its callers, which still reference it, are exactly the blast radius) and the new FQCN as a coarse class-level estimate. A rename whose old name matches nothing in the graph reads UNRESOLVED, never cosmetic. Renames that also edit content were already handled and are unchanged, as are pure copies (nothing existing breaks, so they stay additive-by-design).

Internal

  • Six new tests pin the behavior end to end: hunk-less rename registration on both parser flush paths, no double registration for content-carrying renames, pure copies ignored, the resolver's both-FQCN seeding, and an analyzer-level test proving a renamed class's old callers surface as the reported entry points. Suite now at 343 tests.

Full Changelog: v0.3.0...v0.4.0