What's Changed
Fixes
- fix(callable): a first-class callable of a method keeps its inherited return type by @jirkace in #12800
- fix(conditions): forget what the left of && tested of a variable that its right assigns by @jirkace in #12655
- fix(unused): see assignments of a try branch that throws after the try by @jirkace in #13122
- fix(isset): a property missing on one member of a union is null for isset by @jirkace in #12689
- Define the variables assigned in the condition of a while or for loop after the loop by @jirkace in #12717
- fix(conditions): don't report paths below an assigned variable as redundant in and/or chains by @jirkace in #13292
- Report instanceof of an implied interface, not instanceof of a class-string by @jirkace in #12626
- Combine the variables of all catches when the try block always throws by @jirkace in #12727
- Psalter: leave a docblock as written when no @return tag changes by @alies-dev in #13624
- Apply what plugins remove from a call's result wherever the result flows by @alies-dev in #13626
Internal changes
- Perf: scan files from a warm cache without forking (big app warm run: -14 % wall, -15 % CPU, -13 % memory) by @alies-dev in #13251
Other changes
Full Changelog: 7.3.1...7.3.2