phpstan/phpstan (phpstan/phpstan)
### [`v1.10.46`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.46)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.45...1.10.46)
# Improvements π§
- Improved `isset()` and ternary operator handling ([#2710](https://togithub.com/phpstan/phpstan-src/pull/2710)), [#3632](https://togithub.com/phpstan/phpstan/issues/3632), [#8190](https://togithub.com/phpstan/phpstan/issues/8190), [#8366](https://togithub.com/phpstan/phpstan/issues/8366), [#8659](https://togithub.com/phpstan/phpstan/issues/8659), [#9580](https://togithub.com/phpstan/phpstan/issues/9580), [#10064](https://togithub.com/phpstan/phpstan/issues/10064), [#10088](https://togithub.com/phpstan/phpstan/issues/10088), thanks [@staabm](https://togithub.com/staabm)!
- Optimize enums with many cases (https://github.com/phpstan/phpstan-src/commit/b17d5290766ca3a4d413dbfe9e020c9fef4700c3)
# Bugfixes π
- Fix namespace of named type in class constant native type by patching PHP-Parser (https://github.com/phpstan/phpstan-src/commit/8234dc0b34c0748f6caa3be4130411562fb03f2c), [#10212](https://togithub.com/phpstan/phpstan/issues/10212)
- Do not create conditional expression for the same variable (https://github.com/phpstan/phpstan-src/commit/aec04068119f765ed7181ea737c20cea6916591d)
- It's okay to have always-throwing expression in arrow function (https://github.com/phpstan/phpstan-src/commit/758e5f118ac5781d597707666104511258fcaf67), [#7890](https://togithub.com/phpstan/phpstan/issues/7890)
# Internals π
- Use dedicated Type methods over `isSuperTypeOf()` ([#2788](https://togithub.com/phpstan/phpstan-src/pull/2788)), thanks [@staabm](https://togithub.com/staabm)!
### [`v1.10.45`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.45)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.44...1.10.45)
# Improvements π§
- Introduce InvalidTypesInUnionRule ([#2763](https://togithub.com/phpstan/phpstan-src/pull/2763)), [#9185](https://togithub.com/phpstan/phpstan/issues/9185), thanks [@paulbalandan](https://togithub.com/paulbalandan)!
- Implement DeclareStrictTypesRule ([#2766](https://togithub.com/phpstan/phpstan-src/pull/2759)), [#6195](https://togithub.com/phpstan/phpstan/issues/6195), thanks [@staabm](https://togithub.com/staabm)!
- Narrow `enum_exists()` arg to UnitEnum ([#2764](https://togithub.com/phpstan/phpstan-src/pull/2764)), [#10169](https://togithub.com/phpstan/phpstan/issues/10169), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes π
- Use dedicated Type methods over `isSuperTypeOf()` ([#2772](https://togithub.com/phpstan/phpstan-src/pull/2772), [#2787](https://togithub.com/phpstan/phpstan-src/pull/2787)), [#9778](https://togithub.com/phpstan/phpstan/issues/9778), [#9723](https://togithub.com/phpstan/phpstan/issues/9723), [#6407](https://togithub.com/phpstan/phpstan/issues/6407), thanks [@staabm](https://togithub.com/staabm)!
- Optimize match expression with many conditions (https://github.com/phpstan/phpstan-src/commit/c238fe77f7041dd486c9c0f5ee582fee75bdbadd)
- `in_array` - simulate Identical/Equal handling from TypeSpecifier for literal arrays (https://github.com/phpstan/phpstan-src/commit/0177e332f27c7cf7d710c1a535ddcdfd019e9b89), [#10201](https://togithub.com/phpstan/phpstan/issues/10201)
# Function signature fixes π€
- Fix optional 4th parameter for `Redis::restore` ([#2765](https://togithub.com/phpstan/phpstan-src/pull/2765)), thanks [@Vaalyn](https://togithub.com/Vaalyn)!
- Put `str_increment` and `str_decrement` into functionMap ([#2777](https://togithub.com/phpstan/phpstan-src/pull/2777)), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Update functionMap ([#2783](https://togithub.com/phpstan/phpstan-src/pull/2783)), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Update functionMap for `ext-mongodb` 1.17 ([#2768](https://togithub.com/phpstan/phpstan-src/pull/2768)), thanks [@alcaeus](https://togithub.com/alcaeus)!
# Internals π
- Replace with `in_array()` instead of redundant property ([#2770](https://togithub.com/phpstan/phpstan-src/pull/2770)), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Fix typo in rule name: `MethodVisibitiliyInInterfaceRule` ([#2781](https://togithub.com/phpstan/phpstan-src/pull/2781)), thanks [@staabm](https://togithub.com/staabm)!
- Make extensions that return default types simply `return null` ([#2782](https://togithub.com/phpstan/phpstan-src/pull/2782)), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Simplify InArrayFunctionTypeSpecifyingExtension ([#2785](https://togithub.com/phpstan/phpstan-src/pull/2785)), thanks [@staabm](https://togithub.com/staabm)!
sebastianbergmann/phpunit (phpunit/phpunit)
### [`v10.5.0`](https://togithub.com/sebastianbergmann/phpunit/compare/10.4.2...10.5.0)
[Compare Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.4.2...10.5.0)
Roave/BackwardCompatibilityCheck (roave/backward-compatibility-check)
### [`v8.4.0`](https://togithub.com/Roave/BackwardCompatibilityCheck/releases/tag/8.4.0)
[Compare Source](https://togithub.com/Roave/BackwardCompatibilityCheck/compare/8.3.0...8.4.0)
##### Release Notes for [8.4.0](https://togithub.com/Roave/BackwardCompatibilityCheck/milestone/57)
Feature release (minor)
##### 8.4.0
- Total issues resolved: **0**
- Total pull requests resolved: **2**
- Total contributors: **2**
##### enhancement
- [751: PHP 8.3 build](https://togithub.com/Roave/BackwardCompatibilityCheck/pull/751) thanks to [@michael-rubel](https://togithub.com/michael-rubel)
##### renovate
- [744: Update dependency doctrine/coding-standard to v12](https://togithub.com/Roave/BackwardCompatibilityCheck/pull/744) thanks to [@renovate](https://togithub.com/renovate)\[bot]
Roave/Signature (roave/signature)
### [`v1.8.0`](https://togithub.com/Roave/Signature/releases/tag/1.8.0)
[Compare Source](https://togithub.com/Roave/Signature/compare/1.7.0...1.8.0)
##### Release Notes for [1.8.0](https://togithub.com/Roave/Signature/milestone/17)
Feature release (minor)
##### 1.8.0
- Total issues resolved: **0**
- Total pull requests resolved: **5**
- Total contributors: **3**
##### enhancement
- [64: PHP 8.3 build](https://togithub.com/Roave/Signature/pull/64) thanks to [@michael-rubel](https://togithub.com/michael-rubel)
##### renovate
- [58: Update dependency doctrine/coding-standard to v11](https://togithub.com/Roave/Signature/pull/58) thanks to [@renovate](https://togithub.com/renovate)\[bot]
- [57: Update dependency vimeo/psalm to v5](https://togithub.com/Roave/Signature/pull/57) thanks to [@renovate](https://togithub.com/renovate)\[bot]
##### dependencies,enhancement
- [56: Lock file maintenance](https://togithub.com/Roave/Signature/pull/56) thanks to [@Ocramius](https://togithub.com/Ocramius)
- [54: Configure Renovate](https://togithub.com/Roave/Signature/pull/54) thanks to [@renovate](https://togithub.com/renovate)\[bot]
shivammathur/setup-php (shivammathur/setup-php)
### [`v2.28.0`](https://togithub.com/shivammathur/setup-php/releases/tag/2.28.0)
[Compare Source](https://togithub.com/shivammathur/setup-php/compare/2.27.1...2.28.0)
##### Changelog
- Specifying 8.3 in `php-version` now installs a stable build of PHP 8.3.
```yml
- name: Setup PHP 8.3
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
```
- Specifying `latest` in `php-version` now installs PHP 8.3 as well.
```yml
- name: Setup Latest PHP
uses: shivammathur/setup-php@v2
with:
php-version: 'latest'
```
- Specifying `nightly` in `php-version` now installs PHP 8.4.
```yml
- name: Setup Nightly PHP
uses: shivammathur/setup-php@v2
with:
php-version: 'nightly'
```
- Added support for `intl` extension with ICU 74.1 ([https://github.com/shivammathur/icu-intl/pull/7](https://togithub.com/shivammathur/icu-intl/pull/7))
```yml
- name: Setup PHP with intl
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: intl-74.1
```
- Added support to specify `zts` in `phpts` environment variable instead of `ts` to set up thread-safe PHP on Linux and Windows.
```yml
- name: Setup PHP 8.3 (ZTS)
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
env:
phpts: zts
```
- Fixed support for debug builds. ([#784](https://togithub.com/shivammathur/setup-php/issues/784))
```yml
- name: Setup PHP 8.3
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
env:
debug: true
```
- Added support for cached builds for PHP 8.3, PHP 8.4, and zts builds of all versions of PHP 5.6 and newer on Ubuntu GitHub Hosted environments. This should reduce the time it takes to set up these PHP versions.
- Added `swoole` to the builds cache for GitHub-hosted environments for PHP 7.2 and newer.
```yml
- name: Setup PHP 8.3
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: swoole
```
- Added PHP 8.3 and PHP 8.4 to the extension lists in the [wiki](https://togithub.com/shivammathur/setup-php/wiki). ([#787](https://togithub.com/shivammathur/setup-php/issues/787)).
- PHP 8.0 is now marked as `End of life` and PHP 8.1 is now marked as `Security fixes only` in README.
See [PHP Support](https://togithub.com/shivammathur/setup-php?tab=readme-ov-file#tada-php-support) in README.
- Fixed support for Blackfire extension. The action now disabled `Xdebug` and `pcov` extensions by default when `blackfire` is specified in `extensions` input.
```yml
- name: Setup PHP with blackfire extension
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: blackfire
```
- Fixed support for `grpc_php_plugin` when installed along with `protoc` on macOS.
```yml
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
tools: protoc, grpc_php_plugin
```
- Fixed support for `geos` extension on PHP 8.3.
```yml
- name: Setup PHP with geos extension
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: geos
```
- Fixed support for `event` extension on macOS to use `openssl@3` formula.
```yml
- name: Setup PHP with geos extension
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: event
```
- Update Node.js dependencies.
##### Merged Pull Requests
- Merged pull request [#787](https://togithub.com/shivammathur/setup-php/pull/787) from [@jrfnl](https://togithub.com/jrfnl)
- Merged pull request [#7](https://togithub.com/shivammathur/icu-intl/pull/7) from [@jderusse](https://togithub.com/jderusse)
For the complete list of changes, please refer to the [Full Changelog](https://togithub.com/shivammathur/setup-php/compare/2.27.1...2.28.0)
Follow for updates
vimeo/psalm (vimeo/psalm)
### [`v5.16.0`](https://togithub.com/vimeo/psalm/releases/tag/5.16.0)
[Compare Source](https://togithub.com/vimeo/psalm/compare/5.15.0...5.16.0)
#### What's Changed
##### Features
- Show success message and type stats with GHA formatter by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10145](https://togithub.com/vimeo/psalm/pull/10145)
- New sinks for TaintedCallable [#10117](https://togithub.com/vimeo/psalm/issues/10117) by [@cgocast](https://togithub.com/cgocast) in [https://github.com/vimeo/psalm/pull/10154](https://togithub.com/vimeo/psalm/pull/10154)
- Properly inherit assertions from parents or implemented faces by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10157](https://togithub.com/vimeo/psalm/pull/10157)
- Flag invalid declares by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10176](https://togithub.com/vimeo/psalm/pull/10176)
- Narrow `ArrayObject` `TKey` template by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10190](https://togithub.com/vimeo/psalm/pull/10190)
- Allow object assertions for `mixed` values by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10207](https://togithub.com/vimeo/psalm/pull/10207)
- Issue handlers priority by [@gmessier](https://togithub.com/gmessier) in [https://github.com/vimeo/psalm/pull/10202](https://togithub.com/vimeo/psalm/pull/10202)
- Check for declare strict_types in block mode by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10234](https://togithub.com/vimeo/psalm/pull/10234)
- feat(LSP): Improve the autocomplete for nested array shape by [@ging-dev](https://togithub.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10230](https://togithub.com/vimeo/psalm/pull/10230)
- Add alias support to psalm-check-type by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10264](https://togithub.com/vimeo/psalm/pull/10264)
- Allow parameter names in callable docblocks with templates by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10261](https://togithub.com/vimeo/psalm/pull/10261)
- Disallow `never` type for parameters by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10266](https://togithub.com/vimeo/psalm/pull/10266)
- Fix auto completion by partial property or method by [@issidorov](https://togithub.com/issidorov) in [https://github.com/vimeo/psalm/pull/10320](https://togithub.com/vimeo/psalm/pull/10320)
- Add stubs for rdKafka by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10351](https://togithub.com/vimeo/psalm/pull/10351)
- Suppressing NoValue should not treat subsequent code as unevaluated by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10303](https://togithub.com/vimeo/psalm/pull/10303)
- Fix misc callable bugs by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10370](https://togithub.com/vimeo/psalm/pull/10370)
##### Fixes
- Added more gc_status return fields by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10138](https://togithub.com/vimeo/psalm/pull/10138)
- Filter baseline when checking individual files by [@edsrzf](https://togithub.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10115](https://togithub.com/vimeo/psalm/pull/10115)
- Assertion enhancements regarding `value-of` in combination with backed enums by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10150](https://togithub.com/vimeo/psalm/pull/10150)
- `strrchr()`: `$before_needle` parameter by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10151](https://togithub.com/vimeo/psalm/pull/10151)
- Update `mysqli` stub by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10155](https://togithub.com/vimeo/psalm/pull/10155)
- Fix crash on property access to undefined property on a class with a missing dependncy by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10159](https://togithub.com/vimeo/psalm/pull/10159)
- Prevent infinite-loop when resolving type-aliases by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10156](https://togithub.com/vimeo/psalm/pull/10156)
- InheritorViolation was only being triggered on grand-childen classes by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10169](https://togithub.com/vimeo/psalm/pull/10169)
- Restore support for namespaced functions in referencedFunction config by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/10186](https://togithub.com/vimeo/psalm/pull/10186)
- `DateTimeZone::getName()` always returns `non-empty-string` by [@gsteel](https://togithub.com/gsteel) in [https://github.com/vimeo/psalm/pull/10187](https://togithub.com/vimeo/psalm/pull/10187)
- Only the binary op 'plus' works with two arrays by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10209](https://togithub.com/vimeo/psalm/pull/10209)
- Add openssl_\*\_export_to_file to impure functions by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10210](https://togithub.com/vimeo/psalm/pull/10210)
- add FILTER_SANITIZE_URL filter to filter_var by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10214](https://togithub.com/vimeo/psalm/pull/10214)
- Allow class-string where T is a union by [@MidnightDesign](https://togithub.com/MidnightDesign) in [https://github.com/vimeo/psalm/pull/10194](https://togithub.com/vimeo/psalm/pull/10194)
- Loop over PDOStatement::fetch() arguments by [@cgocast](https://togithub.com/cgocast) in [https://github.com/vimeo/psalm/pull/10237](https://togithub.com/vimeo/psalm/pull/10237)
- Inherited assertions v2 by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10189](https://togithub.com/vimeo/psalm/pull/10189)
- Resolve inherited conditional return types by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10191](https://togithub.com/vimeo/psalm/pull/10191)
- Allow stringable objects in `sprintf()` values by [@MidnightDesign](https://togithub.com/MidnightDesign) in [https://github.com/vimeo/psalm/pull/10231](https://togithub.com/vimeo/psalm/pull/10231)
- fix: [#10239](https://togithub.com/vimeo/psalm/issues/10239) by [@ging-dev](https://togithub.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10240](https://togithub.com/vimeo/psalm/pull/10240)
- Remove duplicate namespace in InternalMethod error message by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10241](https://togithub.com/vimeo/psalm/pull/10241)
- Add stream_socket_shutdown socket_shutdown to impure function list by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10244](https://togithub.com/vimeo/psalm/pull/10244)
- Emit `MethodSignatureMismatch` when descendant does not return by reference by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10248](https://togithub.com/vimeo/psalm/pull/10248)
- Negated class_exist check on class-string converts to string instead of mixed by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10262](https://togithub.com/vimeo/psalm/pull/10262)
- Fix error message for implicitly returning functions with `never` return type by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10254](https://togithub.com/vimeo/psalm/pull/10254)
- Type check nested templates by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/10271](https://togithub.com/vimeo/psalm/pull/10271)
- Fix return of BadSqlTainter::afterExpressionAnalysis() by [@cgocast](https://togithub.com/cgocast) in [https://github.com/vimeo/psalm/pull/10270](https://togithub.com/vimeo/psalm/pull/10270)
- Allow tainted numerics except for 'html' and 'has_quotes' by [@cgocast](https://togithub.com/cgocast) in [https://github.com/vimeo/psalm/pull/10242](https://togithub.com/vimeo/psalm/pull/10242)
- fix final class constant type by [@kk-daniel](https://togithub.com/kk-daniel) in [https://github.com/vimeo/psalm/pull/10279](https://togithub.com/vimeo/psalm/pull/10279)
- Fix inferring enum case value from a class constant by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10274](https://togithub.com/vimeo/psalm/pull/10274)
- fix: [#10080](https://togithub.com/vimeo/psalm/issues/10080) by [@ging-dev](https://togithub.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10228](https://togithub.com/vimeo/psalm/pull/10228)
- Fix memory explosion with calls to method_exists by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10290](https://togithub.com/vimeo/psalm/pull/10290)
- Additional caching fixes by [@ging-dev](https://togithub.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10289](https://togithub.com/vimeo/psalm/pull/10289)
- str_replace / substr_replace signature improvements by [@mathroc](https://togithub.com/mathroc) in [https://github.com/vimeo/psalm/pull/10277](https://togithub.com/vimeo/psalm/pull/10277)
- Fix method calls and property accesses after extension_loaded by [@danog](https://togithub.com/danog) in [https://github.com/vimeo/psalm/pull/10295](https://togithub.com/vimeo/psalm/pull/10295)
- fix [@param-out](https://togithub.com/param-out) with named arguments by [@kk-daniel](https://togithub.com/kk-daniel) in [https://github.com/vimeo/psalm/pull/10312](https://togithub.com/vimeo/psalm/pull/10312)
- Narrow down `get_browser` returning array or object by [@simonberger](https://togithub.com/simonberger) in [https://github.com/vimeo/psalm/pull/10314](https://togithub.com/vimeo/psalm/pull/10314)
- Allow int keys when calling Redis methods by [@greg0ire](https://togithub.com/greg0ire) in [https://github.com/vimeo/psalm/pull/10355](https://togithub.com/vimeo/psalm/pull/10355)
- Finding methods and properties for auto completion feature by [@issidorov](https://togithub.com/issidorov) in [https://github.com/vimeo/psalm/pull/10385](https://togithub.com/vimeo/psalm/pull/10385)
- update decimal stubs from documented URL by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10379](https://togithub.com/vimeo/psalm/pull/10379)
- Fix Phar build failure by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/10391](https://togithub.com/vimeo/psalm/pull/10391)
- Fix redundant condition mixed type escape hatch & loose comparison int type shouldnt be mixed by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10388](https://togithub.com/vimeo/psalm/pull/10388)
- Fix [#10398](https://togithub.com/vimeo/psalm/issues/10398): add missing methods of ReflectionProperty class in CallMap and CallMap deltas. by [@niconoe-](https://togithub.com/niconoe-) in [https://github.com/vimeo/psalm/pull/10399](https://togithub.com/vimeo/psalm/pull/10399)
##### Docs
- docs: A semicolon expected by [@lens0021](https://togithub.com/lens0021) in [https://github.com/vimeo/psalm/pull/10149](https://togithub.com/vimeo/psalm/pull/10149)
- Add documentation for [@psalm-flow](https://togithub.com/psalm-flow) by [@ohader](https://togithub.com/ohader) in [https://github.com/vimeo/psalm/pull/10349](https://togithub.com/vimeo/psalm/pull/10349)
##### Internal changes
- Extract the list of impure functions into its own dictionary by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10136](https://togithub.com/vimeo/psalm/pull/10136)
- `composer.json` tweaks by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10161](https://togithub.com/vimeo/psalm/pull/10161)
- Bump actions/checkout from 3 to 4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/vimeo/psalm/pull/10192](https://togithub.com/vimeo/psalm/pull/10192)
- Update IssueBuffer.php by [@aleksandr-shevchenko](https://togithub.com/aleksandr-shevchenko) in [https://github.com/vimeo/psalm/pull/10294](https://togithub.com/vimeo/psalm/pull/10294)
- Backport rector fixes to 5.x by [@danog](https://togithub.com/danog) in [https://github.com/vimeo/psalm/pull/10306](https://togithub.com/vimeo/psalm/pull/10306)
- Bump fkirc/skip-duplicate-actions from 5.3.0 to 5.3.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/vimeo/psalm/pull/10313](https://togithub.com/vimeo/psalm/pull/10313)
- Allow Symfony 7 by [@kbond](https://togithub.com/kbond) in [https://github.com/vimeo/psalm/pull/10335](https://togithub.com/vimeo/psalm/pull/10335)
- Get rid of legacy 7.3 logic by [@danog](https://togithub.com/danog) in [https://github.com/vimeo/psalm/pull/10319](https://togithub.com/vimeo/psalm/pull/10319)
- Finalize all internal classes by [@danog](https://togithub.com/danog) in [https://github.com/vimeo/psalm/pull/10318](https://togithub.com/vimeo/psalm/pull/10318)
- fix CI "split" unevenly splits the number of tests by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10389](https://togithub.com/vimeo/psalm/pull/10389)
- Fix circleci builds by [@danog](https://togithub.com/danog) in [https://github.com/vimeo/psalm/pull/10396](https://togithub.com/vimeo/psalm/pull/10396)
##### Other changes
- Add exec output param out by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10128](https://togithub.com/vimeo/psalm/pull/10128)
#### New Contributors
- [@lens0021](https://togithub.com/lens0021) made their first contribution in [https://github.com/vimeo/psalm/pull/10149](https://togithub.com/vimeo/psalm/pull/10149)
- [@kk-daniel](https://togithub.com/kk-daniel) made their first contribution in [https://github.com/vimeo/psalm/pull/10279](https://togithub.com/vimeo/psalm/pull/10279)
- [@aleksandr-shevchenko](https://togithub.com/aleksandr-shevchenko) made their first contribution in [https://github.com/vimeo/psalm/pull/10294](https://togithub.com/vimeo/psalm/pull/10294)
- [@simonberger](https://togithub.com/simonberger) made their first contribution in [https://github.com/vimeo/psalm/pull/10314](https://togithub.com/vimeo/psalm/pull/10314)
- [@kbond](https://togithub.com/kbond) made their first contribution in [https://github.com/vimeo/psalm/pull/10335](https://togithub.com/vimeo/psalm/pull/10335)
- [@issidorov](https://togithub.com/issidorov) made their first contribution in [https://github.com/vimeo/psalm/pull/10320](https://togithub.com/vimeo/psalm/pull/10320)
**Full Changelog**: https://github.com/vimeo/psalm/compare/5.15.0...5.16.0
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^1.10.41
->^1.10.46
^10.4.2
->^10.5.0
^8.3.0
->^8.4.0
^1.7
->^1.8.0
2.27.1
->2.28.0
5.15.0
->5.16.0
Release Notes
phpstan/phpstan (phpstan/phpstan)
### [`v1.10.46`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.46) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.45...1.10.46) # Improvements π§ - Improved `isset()` and ternary operator handling ([#2710](https://togithub.com/phpstan/phpstan-src/pull/2710)), [#3632](https://togithub.com/phpstan/phpstan/issues/3632), [#8190](https://togithub.com/phpstan/phpstan/issues/8190), [#8366](https://togithub.com/phpstan/phpstan/issues/8366), [#8659](https://togithub.com/phpstan/phpstan/issues/8659), [#9580](https://togithub.com/phpstan/phpstan/issues/9580), [#10064](https://togithub.com/phpstan/phpstan/issues/10064), [#10088](https://togithub.com/phpstan/phpstan/issues/10088), thanks [@staabm](https://togithub.com/staabm)! - Optimize enums with many cases (https://github.com/phpstan/phpstan-src/commit/b17d5290766ca3a4d413dbfe9e020c9fef4700c3) # Bugfixes π - Fix namespace of named type in class constant native type by patching PHP-Parser (https://github.com/phpstan/phpstan-src/commit/8234dc0b34c0748f6caa3be4130411562fb03f2c), [#10212](https://togithub.com/phpstan/phpstan/issues/10212) - Do not create conditional expression for the same variable (https://github.com/phpstan/phpstan-src/commit/aec04068119f765ed7181ea737c20cea6916591d) - It's okay to have always-throwing expression in arrow function (https://github.com/phpstan/phpstan-src/commit/758e5f118ac5781d597707666104511258fcaf67), [#7890](https://togithub.com/phpstan/phpstan/issues/7890) # Internals π - Use dedicated Type methods over `isSuperTypeOf()` ([#2788](https://togithub.com/phpstan/phpstan-src/pull/2788)), thanks [@staabm](https://togithub.com/staabm)! ### [`v1.10.45`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.45) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.44...1.10.45) # Improvements π§ - Introduce InvalidTypesInUnionRule ([#2763](https://togithub.com/phpstan/phpstan-src/pull/2763)), [#9185](https://togithub.com/phpstan/phpstan/issues/9185), thanks [@paulbalandan](https://togithub.com/paulbalandan)! - Implement DeclareStrictTypesRule ([#2766](https://togithub.com/phpstan/phpstan-src/pull/2759)), [#6195](https://togithub.com/phpstan/phpstan/issues/6195), thanks [@staabm](https://togithub.com/staabm)! - Narrow `enum_exists()` arg to UnitEnum ([#2764](https://togithub.com/phpstan/phpstan-src/pull/2764)), [#10169](https://togithub.com/phpstan/phpstan/issues/10169), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes π - Use dedicated Type methods over `isSuperTypeOf()` ([#2772](https://togithub.com/phpstan/phpstan-src/pull/2772), [#2787](https://togithub.com/phpstan/phpstan-src/pull/2787)), [#9778](https://togithub.com/phpstan/phpstan/issues/9778), [#9723](https://togithub.com/phpstan/phpstan/issues/9723), [#6407](https://togithub.com/phpstan/phpstan/issues/6407), thanks [@staabm](https://togithub.com/staabm)! - Optimize match expression with many conditions (https://github.com/phpstan/phpstan-src/commit/c238fe77f7041dd486c9c0f5ee582fee75bdbadd) - `in_array` - simulate Identical/Equal handling from TypeSpecifier for literal arrays (https://github.com/phpstan/phpstan-src/commit/0177e332f27c7cf7d710c1a535ddcdfd019e9b89), [#10201](https://togithub.com/phpstan/phpstan/issues/10201) # Function signature fixes π€ - Fix optional 4th parameter for `Redis::restore` ([#2765](https://togithub.com/phpstan/phpstan-src/pull/2765)), thanks [@Vaalyn](https://togithub.com/Vaalyn)! - Put `str_increment` and `str_decrement` into functionMap ([#2777](https://togithub.com/phpstan/phpstan-src/pull/2777)), thanks [@zonuexe](https://togithub.com/zonuexe)! - Update functionMap ([#2783](https://togithub.com/phpstan/phpstan-src/pull/2783)), thanks [@zonuexe](https://togithub.com/zonuexe)! - Update functionMap for `ext-mongodb` 1.17 ([#2768](https://togithub.com/phpstan/phpstan-src/pull/2768)), thanks [@alcaeus](https://togithub.com/alcaeus)! # Internals π - Replace with `in_array()` instead of redundant property ([#2770](https://togithub.com/phpstan/phpstan-src/pull/2770)), thanks [@zonuexe](https://togithub.com/zonuexe)! - Fix typo in rule name: `MethodVisibitiliyInInterfaceRule` ([#2781](https://togithub.com/phpstan/phpstan-src/pull/2781)), thanks [@staabm](https://togithub.com/staabm)! - Make extensions that return default types simply `return null` ([#2782](https://togithub.com/phpstan/phpstan-src/pull/2782)), thanks [@zonuexe](https://togithub.com/zonuexe)! - Simplify InArrayFunctionTypeSpecifyingExtension ([#2785](https://togithub.com/phpstan/phpstan-src/pull/2785)), thanks [@staabm](https://togithub.com/staabm)!sebastianbergmann/phpunit (phpunit/phpunit)
### [`v10.5.0`](https://togithub.com/sebastianbergmann/phpunit/compare/10.4.2...10.5.0) [Compare Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.4.2...10.5.0)Roave/BackwardCompatibilityCheck (roave/backward-compatibility-check)
### [`v8.4.0`](https://togithub.com/Roave/BackwardCompatibilityCheck/releases/tag/8.4.0) [Compare Source](https://togithub.com/Roave/BackwardCompatibilityCheck/compare/8.3.0...8.4.0) ##### Release Notes for [8.4.0](https://togithub.com/Roave/BackwardCompatibilityCheck/milestone/57) Feature release (minor) ##### 8.4.0 - Total issues resolved: **0** - Total pull requests resolved: **2** - Total contributors: **2** ##### enhancement - [751: PHP 8.3 build](https://togithub.com/Roave/BackwardCompatibilityCheck/pull/751) thanks to [@michael-rubel](https://togithub.com/michael-rubel) ##### renovate - [744: Update dependency doctrine/coding-standard to v12](https://togithub.com/Roave/BackwardCompatibilityCheck/pull/744) thanks to [@renovate](https://togithub.com/renovate)\[bot]Roave/Signature (roave/signature)
### [`v1.8.0`](https://togithub.com/Roave/Signature/releases/tag/1.8.0) [Compare Source](https://togithub.com/Roave/Signature/compare/1.7.0...1.8.0) ##### Release Notes for [1.8.0](https://togithub.com/Roave/Signature/milestone/17) Feature release (minor) ##### 1.8.0 - Total issues resolved: **0** - Total pull requests resolved: **5** - Total contributors: **3** ##### enhancement - [64: PHP 8.3 build](https://togithub.com/Roave/Signature/pull/64) thanks to [@michael-rubel](https://togithub.com/michael-rubel) ##### renovate - [58: Update dependency doctrine/coding-standard to v11](https://togithub.com/Roave/Signature/pull/58) thanks to [@renovate](https://togithub.com/renovate)\[bot] - [57: Update dependency vimeo/psalm to v5](https://togithub.com/Roave/Signature/pull/57) thanks to [@renovate](https://togithub.com/renovate)\[bot] ##### dependencies,enhancement - [56: Lock file maintenance](https://togithub.com/Roave/Signature/pull/56) thanks to [@Ocramius](https://togithub.com/Ocramius) - [54: Configure Renovate](https://togithub.com/Roave/Signature/pull/54) thanks to [@renovate](https://togithub.com/renovate)\[bot]shivammathur/setup-php (shivammathur/setup-php)
### [`v2.28.0`](https://togithub.com/shivammathur/setup-php/releases/tag/2.28.0) [Compare Source](https://togithub.com/shivammathur/setup-php/compare/2.27.1...2.28.0) ##### Changelog - Specifying 8.3 in `php-version` now installs a stable build of PHP 8.3. ```yml - name: Setup PHP 8.3 uses: shivammathur/setup-php@v2 with: php-version: '8.3' ``` - Specifying `latest` in `php-version` now installs PHP 8.3 as well. ```yml - name: Setup Latest PHP uses: shivammathur/setup-php@v2 with: php-version: 'latest' ``` - Specifying `nightly` in `php-version` now installs PHP 8.4. ```yml - name: Setup Nightly PHP uses: shivammathur/setup-php@v2 with: php-version: 'nightly' ``` - Added support for `intl` extension with ICU 74.1 ([https://github.com/shivammathur/icu-intl/pull/7](https://togithub.com/shivammathur/icu-intl/pull/7)) ```yml - name: Setup PHP with intl uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: intl-74.1 ``` - Added support to specify `zts` in `phpts` environment variable instead of `ts` to set up thread-safe PHP on Linux and Windows. ```yml - name: Setup PHP 8.3 (ZTS) uses: shivammathur/setup-php@v2 with: php-version: '8.3' env: phpts: zts ``` - Fixed support for debug builds. ([#784](https://togithub.com/shivammathur/setup-php/issues/784)) ```yml - name: Setup PHP 8.3 uses: shivammathur/setup-php@v2 with: php-version: '8.3' env: debug: true ``` - Added support for cached builds for PHP 8.3, PHP 8.4, and zts builds of all versions of PHP 5.6 and newer on Ubuntu GitHub Hosted environments. This should reduce the time it takes to set up these PHP versions. - Added `swoole` to the builds cache for GitHub-hosted environments for PHP 7.2 and newer. ```yml - name: Setup PHP 8.3 uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: swoole ``` - Added PHP 8.3 and PHP 8.4 to the extension lists in the [wiki](https://togithub.com/shivammathur/setup-php/wiki). ([#787](https://togithub.com/shivammathur/setup-php/issues/787)). - PHP 8.0 is now marked as `End of life` and PHP 8.1 is now marked as `Security fixes only` in README. See [PHP Support](https://togithub.com/shivammathur/setup-php?tab=readme-ov-file#tada-php-support) in README. - Fixed support for Blackfire extension. The action now disabled `Xdebug` and `pcov` extensions by default when `blackfire` is specified in `extensions` input. ```yml - name: Setup PHP with blackfire extension uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: blackfire ``` - Fixed support for `grpc_php_plugin` when installed along with `protoc` on macOS. ```yml - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' tools: protoc, grpc_php_plugin ``` - Fixed support for `geos` extension on PHP 8.3. ```yml - name: Setup PHP with geos extension uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: geos ``` - Fixed support for `event` extension on macOS to use `openssl@3` formula. ```yml - name: Setup PHP with geos extension uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: event ``` - Update Node.js dependencies. ##### Merged Pull Requests - Merged pull request [#787](https://togithub.com/shivammathur/setup-php/pull/787) from [@jrfnl](https://togithub.com/jrfnl) - Merged pull request [#7](https://togithub.com/shivammathur/icu-intl/pull/7) from [@jderusse](https://togithub.com/jderusse) For the complete list of changes, please refer to the [Full Changelog](https://togithub.com/shivammathur/setup-php/compare/2.27.1...2.28.0)Follow for updates
vimeo/psalm (vimeo/psalm)
### [`v5.16.0`](https://togithub.com/vimeo/psalm/releases/tag/5.16.0) [Compare Source](https://togithub.com/vimeo/psalm/compare/5.15.0...5.16.0) #### What's Changed ##### Features - Show success message and type stats with GHA formatter by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10145](https://togithub.com/vimeo/psalm/pull/10145) - New sinks for TaintedCallable [#10117](https://togithub.com/vimeo/psalm/issues/10117) by [@cgocast](https://togithub.com/cgocast) in [https://github.com/vimeo/psalm/pull/10154](https://togithub.com/vimeo/psalm/pull/10154) - Properly inherit assertions from parents or implemented faces by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10157](https://togithub.com/vimeo/psalm/pull/10157) - Flag invalid declares by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10176](https://togithub.com/vimeo/psalm/pull/10176) - Narrow `ArrayObject` `TKey` template by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10190](https://togithub.com/vimeo/psalm/pull/10190) - Allow object assertions for `mixed` values by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10207](https://togithub.com/vimeo/psalm/pull/10207) - Issue handlers priority by [@gmessier](https://togithub.com/gmessier) in [https://github.com/vimeo/psalm/pull/10202](https://togithub.com/vimeo/psalm/pull/10202) - Check for declare strict_types in block mode by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10234](https://togithub.com/vimeo/psalm/pull/10234) - feat(LSP): Improve the autocomplete for nested array shape by [@ging-dev](https://togithub.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10230](https://togithub.com/vimeo/psalm/pull/10230) - Add alias support to psalm-check-type by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10264](https://togithub.com/vimeo/psalm/pull/10264) - Allow parameter names in callable docblocks with templates by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10261](https://togithub.com/vimeo/psalm/pull/10261) - Disallow `never` type for parameters by [@tuqqu](https://togithub.com/tuqqu) in [https://github.com/vimeo/psalm/pull/10266](https://togithub.com/vimeo/psalm/pull/10266) - Fix auto completion by partial property or method by [@issidorov](https://togithub.com/issidorov) in [https://github.com/vimeo/psalm/pull/10320](https://togithub.com/vimeo/psalm/pull/10320) - Add stubs for rdKafka by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10351](https://togithub.com/vimeo/psalm/pull/10351) - Suppressing NoValue should not treat subsequent code as unevaluated by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10303](https://togithub.com/vimeo/psalm/pull/10303) - Fix misc callable bugs by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10370](https://togithub.com/vimeo/psalm/pull/10370) ##### Fixes - Added more gc_status return fields by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10138](https://togithub.com/vimeo/psalm/pull/10138) - Filter baseline when checking individual files by [@edsrzf](https://togithub.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10115](https://togithub.com/vimeo/psalm/pull/10115) - Assertion enhancements regarding `value-of` in combination with backed enums by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10150](https://togithub.com/vimeo/psalm/pull/10150) - `strrchr()`: `$before_needle` parameter by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10151](https://togithub.com/vimeo/psalm/pull/10151) - Update `mysqli` stub by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10155](https://togithub.com/vimeo/psalm/pull/10155) - Fix crash on property access to undefined property on a class with a missing dependncy by [@weirdan](https://togithub.com/weirdan) in [https://github.com/vimeo/psalm/pull/10159](https://togithub.com/vimeo/psalm/pull/10159) - Prevent infinite-loop when resolving type-aliases by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/10156](https://togithub.com/vimeo/psalm/pull/10156) - InheritorViolation was only being triggered on grand-childen classes by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10169](https://togithub.com/vimeo/psalm/pull/10169) - Restore support for namespaced functions in referencedFunction config by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/10186](https://togithub.com/vimeo/psalm/pull/10186) - `DateTimeZone::getName()` always returns `non-empty-string` by [@gsteel](https://togithub.com/gsteel) in [https://github.com/vimeo/psalm/pull/10187](https://togithub.com/vimeo/psalm/pull/10187) - Only the binary op 'plus' works with two arrays by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10209](https://togithub.com/vimeo/psalm/pull/10209) - Add openssl_\*\_export_to_file to impure functions by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/10210](https://togithub.com/vimeo/psalm/pull/10210) - add FILTER_SANITIZE_URL filter to filter_var by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10214](https://togithub.com/vimeo/psalm/pull/10214) - Allow class-stringConfiguration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
Read more about the use of Renovate Bot within
ocramius/*
projects.