github carthage-software/mago 1.25.2
Mago 1.25.2

9 hours ago

Mago 1.25.1

This release is a bug-fix pass focused on the linter and analyzer, plus a full rewrite of the documentation site. Several false positives reported against 1.25.1 are fixed (no-redundant-variable, no-dead-store, array_map conditional returns, bitwise ops, @psalm-param overrides).

✨ Features

Documentation

  • In-house static site: replaces VitePress with a Rust generator, multi-version, en/fr/zh. (3aa5e8c)

Names

  • use-item names in ResolvedNames: records imported FQNs so the LSP can resolve hover/go-to-definition on use items. (2cc57ee)

🐛 Bug Fixes

Analyzer

  • array_map conditional returns: resolves the callback's conditional return per element instead of collapsing it. (#1748, fcb81b7)
  • Bitwise ops on strings/bool true/floats: matches PHP semantics (string XOR/AND/OR, true→1, float→int). (#1755, a8cf8bb)

Codex

  • @psalm-param priority: applies @psalm-param/@phpstan-param after @param so the more specific docblock wins. (#1756, 51c255e)

Linter

  • no-dead-store on foreach targets: exempts conditional overwrites of the loop-variable binding. (#1749, 259f871)
  • no-redundant-variable by-ref closure captures: drops the synthetic write that masked legitimate uses. (#1751, f713125)
  • no-redundant-variable loop bodies: re-walks the condition after the body so writes inside the loop are observed. (#1752, 6d519a3)
  • no-redundant-use on use items: excludes use-item spans from the used-FQN set so the import isn't counted. (2d476c3)

Language Server

  • Completion after lone $, ->, ::: triggers properly, plus hover/goto resolves through use items. (c839254)

🏗️ Internal

CI

  • Signed sponsor updates: commits the auto-refreshed sponsor files via the GitHub API so they pass branch protection. (597c7a3, edf6a5e)

🙏 Thank You

Issue Reporters

Thank you to everyone who reported issues that shaped this release:

Full Changelog: 1.25.1...1.25.2

Don't miss a new mago release

NewReleases is sending notifications on new releases.