Bug Fixes
Analyzer
- Use constant
REQUEST_TIMEfor$_SERVERto ensure deterministic error messages for baseline matching (#669) - Consider template constraints when checking int/float disjointness (#659)
- Mark
$_SESSIONsuperglobal as possibly undefined (#670) - Allow array destructuring on
ArrayAccessimplementations (#671) - Consider
possibly_undefinedwhen checking redundant nullsafe operator (#672) - Resolve array access type using only matching keys from union index type (#666)
- Check parent classes for pseudo methods to prevent false positive
missing-magic-method(#667)
Codex
- Sort docblock inheritance by hierarchy depth to ensure parents are processed first (#663)
- Resolve templates when inheriting assertions from parent methods (#660)
- Infer arithmetic operations as
int|floatinstead ofmixed(#664) - Treat arrays with required keys as non-empty in containment check (#665)
Semantics & Formatter
- Require arrow functions on RHS of
|>to be parenthesized (#662)
Improvements
Baseline
- Introduced a new loose baseline variant as the default format, which is more resilient to code changes. The loose format matches issues by
(file, code, message)tuple with occurrence counts, making baselines stable even when line numbers shift. The previous strict format (exact line matching) remains available via configuration. (#492)
Full Changelog: 1.0.0-rc.5...1.0.0-rc.6