Features
- @mr-feek added support for configurable universal objects (#3948)
- Improved error messages and reporting for
ParadoxicalCondition
(example) – thanks to @dkarlovi, @jbafford and @ro0NL for their input
Bugfixes
Fixed XML generation
3.16 broke XML output, this is now fixed (#4252).
Other bugfixes
- @DanielBadura added a stub for
random_int
, providing better inference (#4199) - Improved signatures for
preg_match_all
(#4202) and @orklah helped improvepreg_split
- Treat
func_num_args
as pure (#4215) - Fix
__invoke
declaration crash (#4210) - Allow hinting arrow function return types (#4209)
- Add checks for
if ((bool) $foo)
(#4206) - Fix crash with some class-string property assignments (#4198)
- @aheart fixed bugs with JUnit generation (#4234)
- @danog added a bunch of stubs for
Spl*
classes (#4255) allowMissingFiles
was fixed by @ddeboer (#4259)- prevent crash after analysing file that defines a class twice (#4264)
- prevent an infinite loop when analysing a closure unioned with invokable class (#4266)
- @marcosh added more stubs for array functions (#4271)
- prevent crash when annotating the intersection of arrays (#4287)
- Fix reported property id for multiple
MissingConstructor
issues on a single class (#4297) - Prevent crash when trying to negate a
positive-numeric
assertion (#4306) - Fix return types for a few callmap-provided functions (#4309)
- Prevent a class name validation check on a string argument to a
class-string|Foo
union (#4310)
Also thanks to @orklah for many linting PRs, and to @weirdan for very good triaging