github carthage-software/mago 1.49.0
Mago 1.49.0

one day ago

Mago 1.49.0 improves generic and assertion analysis, keeps array types precise, fixes scoped ignores, and sharpens formatter output.

🐛 Bug Fixes

Analyzer

  • By-reference mutations: preserves nested literal booleans in arrays changed by built-in functions. (#2374, c5186aa)
  • Equality narrowing: keeps strict literal strings when compared with wider string types. (#2365, fe9439d)
  • Dynamic instantiation: preserves nested template bounds for inferred class-string<T>. (#2379, 0c6c397)
  • Parent method templates: resolves inherited generic returns inside templated children. (#2378, 4eada77)
  • Method assertions: retains pure-method assertions across guards, loops, matches, switches, and boolean aliases. (#2377, 8cdf201)

Codex

  • Array unions: accepts generic arrays compatible with a union of equivalent keyed-array types. (#2367, 8766002)

Configuration

  • Scoped pattern ignores: keeps pattern when an analyzer ignore also sets code and in. (#2375, ea0c26f)

Formatter

  • Broken chains: indents continuations when the formatter wraps operator chains. (#2368, #2370, 497cbb8)
  • Null coalescing: wraps long ?? chains within the configured print width. (#2380, 596ce7f)
  • Statement terminators: keeps semicolons with wrapped use and echo statements. (#2363, ec5c55c)

CLI

  • Guard progress: uses a terminal-safe emoji for aligned progress output. (#2369, a6aa77c)

🙏 Thank You

Contributors

A huge thank you to everyone who contributed code to this release:

Issue Reporters

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

Full Changelog: 1.48.1...1.49.0

Don't miss a new mago release

NewReleases is sending notifications on new releases.