github carthage-software/mago 1.52.0
Mago 1.52.0

3 hours ago

Mago 1.52.0 makes analysis faster from file loading through reporting, adds rdkafka stubs, and fixes constant visibility, nullsafe loop types, magic-method names, and built-in signatures.

Note

Support Mago

Does your company use Mago? Please consider sponsoring its development so we can keep fixing bugs and shipping releases.

Sponsor Mago ❤️

✨ Features

Prelude

  • rdkafka stubs: adds types for producers, consumers, callbacks, messages, metadata, and constants. (#2412, 6e08eb3)

🐛 Bug Fixes

Analyzer

  • Constant visibility: reports reads of inaccessible private and protected class constants. (#2419, 9bcd3d4)
  • Magic method names: keeps diagnostic casing and lowercase extension identifiers. (#2421, 11cd6a0, 29fe098)
  • Nullsafe loops: infers object types for accumulators using nullsafe calls and ??. (#2428, ab12076)

Linter

  • Secret comparisons: ignores literal values such as 'refresh_token' while still checking names. (#2028, #2420, 4a9913b)

Prelude

  • Concrete methods: fixes false abstract-method errors when extending SPL and date classes. (#2427, 4502745)
  • Map defaults: keeps explicit fallback types, including null, in Ds\Map::get() and remove(). (#2425, cbb33fe)

📖 Documentation

Website

  • Sidebar scrolling: lets the sidebar scroll without moving the page. (#2426, 375ac4b)
  • Border contrast: softens borders to make the docs easier to read. (#2423, 40d1aa2)
  • Heading casing: uses sentence case consistently in setup guides. (#2424, 1d0720b)

🏗️ Internal

Analyzer

  • Loop analysis: skips stable passes and cuts type copying and repeated lookups. (025f27f, 1535109, 089078e)

Codex

  • Type operations: reduces copying in type traversal, array comparisons, and union merges. (b306923, b5f1d4a)
  • Metadata lookups: speeds up method inheritance and symbol-reference merging. (bcba31b, 6e0a553)

Pipeline

  • File loading: loads files in parallel and defers path formatting until needed. (480cb16, 96e49e6)
  • Analysis scheduling: balances file work and speeds up metadata population and cleanup. (3608259, 4ec8478)

Algebra

  • Condition clauses: reuses shared clauses and avoids temporary collections during comparisons. (decbfd5, 5e599f0)

Syntax

  • Parsing: cuts expression allocations and repeated string scans and copies. (cdf8266, c045c7f)
  • Name handling: reuses words and cuts name-resolution allocations and interner lock time. (37bf655, f9faeb5, 9e600e1)

Reporting

  • Output: buffers stdout and stderr, speeds up Emacs output, and cleans up issues in parallel. (a1392d0, 9e355dd)

🧩 Extension Protocol

No protocol changes in this release.

🙏 Thank You

Contributors

Thank you to everyone who contributed to this release:

Issue Reporters

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

Full Changelog: 1.51.2...1.52.0

Don't miss a new mago release

NewReleases is sending notifications on new releases.