Mago 1.47.6
Mago 1.47.6 strengthens property and control-flow narrowing, preserves collection precision, and fixes formatter comment and string handling.
🐛 Bug Fixes
Analyzer
- Nested
isset: marks roots defined after guarded nested offset checks. (#2303, 1da40ab) - Nullsafe booleans: narrows nullable receivers after boolean property comparisons. (#2315, e3aefe1)
- Nullsafe
instanceof: narrows receivers and properties after nullsafe type checks. (#2308, ea927d0) - String-length guards: narrows strings from
strlen()comparisons. (#2307, fff0817) - Integer reconciliation: preserves literal unions through bitwise guards. (#2309, 801fc7f)
- Keyed writes: retains non-empty arrays after writes from non-empty loops. (#2305, ed44977)
- Boolean aliases: preserves guard narrowing across
elseifandmatch. (#2312, 2a248f1) - Compound assignments: retains right-operand types in the expression index. (#2311, ce98d0d)
- Immutable chains: keeps deep property narrowing across unrelated calls. (#2304, 414c4e0)
- Trait requirements: excludes requirement-only generics from inheritance paths. (#2317, 007de69)
- Property assertions: maps parameter-property assertions onto call arguments. (#2318, 696def4)
Prelude
Formatter
- Parenthesized comments: keeps comments attached inside grouping parentheses. (#2300, 88d062f)
- Dollar strings: preserves single quotes around strings containing dollar signs. (#2316, 6aa441c)
🏗️ Internal
Performance
- Analyzer allocations: removes redundant clones from hot analysis paths. (16335f4)
Maintenance
- Version updater: reduces release versioning complexity. (5113670)
- Nightly Clippy: removes a redundant watcher path clone. (64f3e9f)
🙏 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:
- @MichaelOwenDyer: #2304, #2305, #2307, #2308, #2312, #2315, #2318
- @kamil-tekiela: #2303
- @shadowhand: #2314
- @gsteel: #2309
- @SanderMuller: #2311
- @Vyygir: #2316
- @bendavies: #2317
Full Changelog: 1.47.5...1.47.6