This is a minor maintenance release that includes several important bug fixes for the linter, formatter, and the core lexer, improving overall stability and correctness.
✅ Linter
- Fixed a critical bug in the
no-redundant-nullsafe
autofix. Previously, when fixing code like$a?->b ?? $c
, the linter would incorrectly change the??
operator instead of the?->
operator, resulting in broken code. The autofix now correctly produces$a->b ?? $c
. (closes #370)
💅 Formatter
- Improved the breaking logic for function argument lists. The formatter is now smarter about how it breaks argument lists onto multiple lines, especially when they contain complex arguments like arrays or closures. This leads to more stable and predictable output. (closes #346)
⚙️ Core
- Corrected a low-level bug in the lexer's span calculation for whitespace. This fix ensures that the source code position of whitespace is calculated accurately, which increases the reliability of tools that depend on precise location info. The internal test suite has also been strengthened to prevent similar issues in the future.
Full Changelog: 1.0.0-beta.7...1.0.0-beta.8