phpstan/extension-installer (phpstan/extension-installer)
### [`v1.4.3`](https://redirect.github.com/phpstan/extension-installer/releases/tag/1.4.3)
[Compare Source](https://redirect.github.com/phpstan/extension-installer/compare/1.4.2...1.4.3)
- [85e90b3](http://github.com/phpstan/extension-installer/commit/85e90b3942d06b2326fba0403ec24fe912372936) - Allow PHPStan ^2.0 (currently in development)
phpstan/phpstan (phpstan/phpstan)
### [`v1.12.3`](https://redirect.github.com/phpstan/phpstan/compare/1.12.2...1.12.3)
[Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.2...1.12.3)
### [`v1.12.2`](https://redirect.github.com/phpstan/phpstan/releases/tag/1.12.2)
[Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.1...1.12.2)
# Improvements π§
- PHP 8.4 - report deprecated implicitly nullable parameter types (https://github.com/phpstan/phpstan-src/commit/9bd027c56330c0f5cc2abab2159549373539583d), [#11413](https://redirect.github.com/phpstan/phpstan/issues/11413)
# Bugfixes π
- Run `@mixin` class reflection extensions after all other class reflection extensions (https://github.com/phpstan/phpstan-src/commit/c889baa9ec60394e9201b2a7054486c66b40fa9b), [#11624](https://redirect.github.com/phpstan/phpstan/issues/11624), [#11342](https://redirect.github.com/phpstan/phpstan/issues/11342), [#10159](https://redirect.github.com/phpstan/phpstan/issues/10159), [https://github.com/larastan/larastan/issues/2032](https://redirect.github.com/larastan/larastan/issues/2032)
- RegexArrayShapeMatcher - Don't optimize alternations with optional groups for tagged unions ([#3395](https://redirect.github.com/phpstan/phpstan-src/pull/3395)), [#11604](https://redirect.github.com/phpstan/phpstan/issues/11604), thanks [@staabm](https://redirect.github.com/staabm)!
- Narrow array on `count()` with `positive-int` ([#3389](https://redirect.github.com/phpstan/phpstan-src/pull/3389)), thanks [@staabm](https://redirect.github.com/staabm)!
- Improve narrowing after string functions ([#3390](https://redirect.github.com/phpstan/phpstan-src/pull/3390)), thanks [@staabm](https://redirect.github.com/staabm)!
- Add `Type::reverseArray()` ([#3344](https://redirect.github.com/phpstan/phpstan-src/pull/3344)), thanks [@herndlm](https://redirect.github.com/herndlm)!
# Function signature fixes π€
- `version_compare()` operator arg can be null ([#3399](https://redirect.github.com/phpstan/phpstan-src/pull/3399)), [#4457](https://redirect.github.com/phpstan/phpstan/issues/4457), thanks [@staabm](https://redirect.github.com/staabm)!
# Internals π
- Regression test ([#3396](https://redirect.github.com/phpstan/phpstan-src/pull/3396)), [#6642](https://redirect.github.com/phpstan/phpstan/issues/6642), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)!
- Simplify isFloat checks ([#3397](https://redirect.github.com/phpstan/phpstan-src/pull/3397)), thanks [@staabm](https://redirect.github.com/staabm)!
### [`v1.12.1`](https://redirect.github.com/phpstan/phpstan/releases/tag/1.12.1)
[Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.0...1.12.1)
# Bleeding edge πͺ
- Check if required file exists ([#3294](https://redirect.github.com/phpstan/phpstan-src/pull/3294)), [#3397](https://redirect.github.com/phpstan/phpstan/issues/3397), thanks [@Bellangelo](https://redirect.github.com/Bellangelo)!
- Check generics `@method` `@template` tags above traits (https://github.com/phpstan/phpstan-src/commit/aadbf62d3ae4517fc7a212b07130bedcef8d13ac)
- Check `@mixin` PHPDoc tag above traits (https://github.com/phpstan/phpstan-src/commit/0d0de946900adf4eb3c799b1b547567536e23147)
*If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's `phpstan.neon`:*
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
*Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. [Learn more](https://phpstan.org/blog/what-is-bleeding-edge)*
# Improvements π§
- Allow dot-prefixed config files ([#3354](https://redirect.github.com/phpstan/phpstan-src/pull/3354)), thanks [@sreichel](https://redirect.github.com/sreichel)!
- Respect dist order over dot order ([#3379](https://redirect.github.com/phpstan/phpstan-src/pull/3379)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)!
- Update PhpStorm stubs + refactor WithoutSideEffectsRule classes ([#3377](https://redirect.github.com/phpstan/phpstan-src/pull/3377)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)!
- TypeSpecifier: Narrow `(bool) $expr` like `$expr != false` ([#3380](https://redirect.github.com/phpstan/phpstan-src/pull/3380)), [#8881](https://redirect.github.com/phpstan/phpstan/issues/8881), [#7685](https://redirect.github.com/phpstan/phpstan/issues/7685), [#6006](https://redirect.github.com/phpstan/phpstan/issues/6006), [#10528](https://redirect.github.com/phpstan/phpstan/issues/10528), thanks [@staabm](https://redirect.github.com/staabm)!
- TypeSpecifier: Narrow `(string) $expr` like `$expr != false` ([#3387](https://redirect.github.com/phpstan/phpstan-src/pull/3387)), thanks [@staabm](https://redirect.github.com/staabm)!
- TypeSpecifier: Narrow `(int) $expr` like `$expr != false` ([#3384](https://redirect.github.com/phpstan/phpstan-src/pull/3384)), thanks [@staabm](https://redirect.github.com/staabm)!
- TypeSpecifier: Narrow `(float) $expr` like `$expr != false` ([#3391](https://redirect.github.com/phpstan/phpstan-src/pull/3391)), thanks [@staabm](https://redirect.github.com/staabm)!
- Add missing rule to StubValidator (https://github.com/phpstan/phpstan-src/commit/085fcf40fefa63fc3672897276e460a6405206fb)
- Support `@mixin` above traits (https://github.com/phpstan/phpstan-src/commit/f5e2e32932644d61b3745e3b0f2c0910f722a86d)
# Bugfixes π
- Fix `array_filter` with callback optional persistance ([#3366](https://redirect.github.com/phpstan/phpstan-src/pull/3366)), [#11570](https://redirect.github.com/phpstan/phpstan/issues/11570), thanks [@robotomarvin](https://redirect.github.com/robotomarvin)!
- RegexArrayShapeMatcher - infer constant string types in alternations ([#3369](https://redirect.github.com/phpstan/phpstan-src/pull/3369)), [#11222](https://redirect.github.com/phpstan/phpstan/issues/11222), thanks [@staabm](https://redirect.github.com/staabm)!
- RegexArrayShapeMatcher - improve type inference in alternations ([#3375](https://redirect.github.com/phpstan/phpstan-src/pull/3375)), thanks [@staabm](https://redirect.github.com/staabm)!
- Fix error on offset assignment to specialized strings ([#3365](https://redirect.github.com/phpstan/phpstan-src/pull/3365)), [#11572](https://redirect.github.com/phpstan/phpstan/issues/11572), thanks [@staabm](https://redirect.github.com/staabm)!
- Narrow string on `strlen() ==` and `===` comparison with integer range ([#3342](https://redirect.github.com/phpstan/phpstan-src/pull/3342)), [#11548](https://redirect.github.com/phpstan/phpstan/issues/11548), thanks [@staabm](https://redirect.github.com/staabm)!
- Fix `get_debug_type` produces wrong type for anonymous classes with parent ([#3374](https://redirect.github.com/phpstan/phpstan-src/pull/3374)), [#11562](https://redirect.github.com/phpstan/phpstan/issues/11562), thanks [@patrickkusebauch](https://redirect.github.com/patrickkusebauch)!
- Fix preserving list when setting union offset type to a ConstantArrayTypeBuilder ([#3382](https://redirect.github.com/phpstan/phpstan-src/pull/3382)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)!
- Fix `preg_replace()` return type ([#3338](https://redirect.github.com/phpstan/phpstan-src/pull/3338)), [#11547](https://redirect.github.com/phpstan/phpstan/issues/11547), thanks [@staabm](https://redirect.github.com/staabm)!
- Detect function variadic-ness anywhere deep in the declaration file ([#3370](https://redirect.github.com/phpstan/phpstan-src/pull/3370)), [#11559](https://redirect.github.com/phpstan/phpstan/issues/11559), [#4753](https://redirect.github.com/phpstan/phpstan/issues/4753), thanks [@staabm](https://redirect.github.com/staabm)!
- Add DateTimeSubMethodThrowTypeExtension ([#3378](https://redirect.github.com/phpstan/phpstan-src/pull/3378)), [#11503](https://redirect.github.com/phpstan/phpstan/issues/11503), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)!
- Do not report `static` in PHPDoc tags above traits as an error (https://github.com/phpstan/phpstan-src/commit/777a82a0dc9d6a64a709c30a2e5bdb030b634464), [#11591](https://redirect.github.com/phpstan/phpstan/issues/11591)
- RegexArrayShapeMatcher - Fix alternations containing a `$`-only case ([#3394](https://redirect.github.com/phpstan/phpstan-src/pull/3394)), [#11622](https://redirect.github.com/phpstan/phpstan/issues/11622), thanks [@staabm](https://redirect.github.com/staabm)!
- Do not report missing implementation abstract method from trait when it's implicitly implemented by enum (https://github.com/phpstan/phpstan-src/commit/c50b71fd961e9009419b8fddac835b15696f4ff5), [#11592](https://redirect.github.com/phpstan/phpstan/issues/11592)
- Fix how well conditional types play with pre-existing `@param-out` variable after assignment (https://github.com/phpstan/phpstan-src/commit/5892e8debfbe2f44306e6707c457665784b7dacd), [#11580](https://redirect.github.com/phpstan/phpstan/issues/11580), [#6642](https://redirect.github.com/phpstan/phpstan/issues/6642)
# Internals π
- Debugging function - `PHPStan\debugScope()` (https://github.com/phpstan/phpstan-src/commit/5909fb2dc78cbee46927c2cb23f7491dfef34165)
- Added regression test ([#3368](https://redirect.github.com/phpstan/phpstan-src/pull/3368)), [#7856](https://redirect.github.com/phpstan/phpstan/issues/7856), thanks [@staabm](https://redirect.github.com/staabm)!
- Simplify specifyTypesForConstantBinaryExpression ([#3392](https://redirect.github.com/phpstan/phpstan-src/pull/3392)), thanks [@staabm](https://redirect.github.com/staabm)!
- Refactoring: introduce MethodTagTemplateTypeCheck (https://github.com/phpstan/phpstan-src/commit/47a85bf1453a076bade7a30c94c06c0825abca7c)
- Simplify extensions (https://github.com/phpstan/phpstan-src/commit/c47730f1f97e4dc6ca9f120e2675ca709fc1402c)
- Refactoring - extract MixinCheck (https://github.com/phpstan/phpstan-src/commit/57ccd8c4d4b16c7edec4c2c2de8589956de8284d)
- MixinCheck - prepare for trait rules (https://github.com/phpstan/phpstan-src/commit/ba591420c26b174ae561e26aeed01ccf34da9dee)
Configuration
π Schedule: Branch creation - "before 4pm every weekday except before 9am every weekday" in timezone America/New_York, 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.4.2
->1.4.3
1.12.0
->1.12.3
Release Notes
phpstan/extension-installer (phpstan/extension-installer)
### [`v1.4.3`](https://redirect.github.com/phpstan/extension-installer/releases/tag/1.4.3) [Compare Source](https://redirect.github.com/phpstan/extension-installer/compare/1.4.2...1.4.3) - [85e90b3](http://github.com/phpstan/extension-installer/commit/85e90b3942d06b2326fba0403ec24fe912372936) - Allow PHPStan ^2.0 (currently in development)phpstan/phpstan (phpstan/phpstan)
### [`v1.12.3`](https://redirect.github.com/phpstan/phpstan/compare/1.12.2...1.12.3) [Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.2...1.12.3) ### [`v1.12.2`](https://redirect.github.com/phpstan/phpstan/releases/tag/1.12.2) [Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.1...1.12.2) # Improvements π§ - PHP 8.4 - report deprecated implicitly nullable parameter types (https://github.com/phpstan/phpstan-src/commit/9bd027c56330c0f5cc2abab2159549373539583d), [#11413](https://redirect.github.com/phpstan/phpstan/issues/11413) # Bugfixes π - Run `@mixin` class reflection extensions after all other class reflection extensions (https://github.com/phpstan/phpstan-src/commit/c889baa9ec60394e9201b2a7054486c66b40fa9b), [#11624](https://redirect.github.com/phpstan/phpstan/issues/11624), [#11342](https://redirect.github.com/phpstan/phpstan/issues/11342), [#10159](https://redirect.github.com/phpstan/phpstan/issues/10159), [https://github.com/larastan/larastan/issues/2032](https://redirect.github.com/larastan/larastan/issues/2032) - RegexArrayShapeMatcher - Don't optimize alternations with optional groups for tagged unions ([#3395](https://redirect.github.com/phpstan/phpstan-src/pull/3395)), [#11604](https://redirect.github.com/phpstan/phpstan/issues/11604), thanks [@staabm](https://redirect.github.com/staabm)! - Narrow array on `count()` with `positive-int` ([#3389](https://redirect.github.com/phpstan/phpstan-src/pull/3389)), thanks [@staabm](https://redirect.github.com/staabm)! - Improve narrowing after string functions ([#3390](https://redirect.github.com/phpstan/phpstan-src/pull/3390)), thanks [@staabm](https://redirect.github.com/staabm)! - Add `Type::reverseArray()` ([#3344](https://redirect.github.com/phpstan/phpstan-src/pull/3344)), thanks [@herndlm](https://redirect.github.com/herndlm)! # Function signature fixes π€ - `version_compare()` operator arg can be null ([#3399](https://redirect.github.com/phpstan/phpstan-src/pull/3399)), [#4457](https://redirect.github.com/phpstan/phpstan/issues/4457), thanks [@staabm](https://redirect.github.com/staabm)! # Internals π - Regression test ([#3396](https://redirect.github.com/phpstan/phpstan-src/pull/3396)), [#6642](https://redirect.github.com/phpstan/phpstan/issues/6642), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)! - Simplify isFloat checks ([#3397](https://redirect.github.com/phpstan/phpstan-src/pull/3397)), thanks [@staabm](https://redirect.github.com/staabm)! ### [`v1.12.1`](https://redirect.github.com/phpstan/phpstan/releases/tag/1.12.1) [Compare Source](https://redirect.github.com/phpstan/phpstan/compare/1.12.0...1.12.1) # Bleeding edge πͺ - Check if required file exists ([#3294](https://redirect.github.com/phpstan/phpstan-src/pull/3294)), [#3397](https://redirect.github.com/phpstan/phpstan/issues/3397), thanks [@Bellangelo](https://redirect.github.com/Bellangelo)! - Check generics `@method` `@template` tags above traits (https://github.com/phpstan/phpstan-src/commit/aadbf62d3ae4517fc7a212b07130bedcef8d13ac) - Check `@mixin` PHPDoc tag above traits (https://github.com/phpstan/phpstan-src/commit/0d0de946900adf4eb3c799b1b547567536e23147) *If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's `phpstan.neon`:* includes: - vendor/phpstan/phpstan/conf/bleedingEdge.neon *Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. [Learn more](https://phpstan.org/blog/what-is-bleeding-edge)* # Improvements π§ - Allow dot-prefixed config files ([#3354](https://redirect.github.com/phpstan/phpstan-src/pull/3354)), thanks [@sreichel](https://redirect.github.com/sreichel)! - Respect dist order over dot order ([#3379](https://redirect.github.com/phpstan/phpstan-src/pull/3379)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)! - Update PhpStorm stubs + refactor WithoutSideEffectsRule classes ([#3377](https://redirect.github.com/phpstan/phpstan-src/pull/3377)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)! - TypeSpecifier: Narrow `(bool) $expr` like `$expr != false` ([#3380](https://redirect.github.com/phpstan/phpstan-src/pull/3380)), [#8881](https://redirect.github.com/phpstan/phpstan/issues/8881), [#7685](https://redirect.github.com/phpstan/phpstan/issues/7685), [#6006](https://redirect.github.com/phpstan/phpstan/issues/6006), [#10528](https://redirect.github.com/phpstan/phpstan/issues/10528), thanks [@staabm](https://redirect.github.com/staabm)! - TypeSpecifier: Narrow `(string) $expr` like `$expr != false` ([#3387](https://redirect.github.com/phpstan/phpstan-src/pull/3387)), thanks [@staabm](https://redirect.github.com/staabm)! - TypeSpecifier: Narrow `(int) $expr` like `$expr != false` ([#3384](https://redirect.github.com/phpstan/phpstan-src/pull/3384)), thanks [@staabm](https://redirect.github.com/staabm)! - TypeSpecifier: Narrow `(float) $expr` like `$expr != false` ([#3391](https://redirect.github.com/phpstan/phpstan-src/pull/3391)), thanks [@staabm](https://redirect.github.com/staabm)! - Add missing rule to StubValidator (https://github.com/phpstan/phpstan-src/commit/085fcf40fefa63fc3672897276e460a6405206fb) - Support `@mixin` above traits (https://github.com/phpstan/phpstan-src/commit/f5e2e32932644d61b3745e3b0f2c0910f722a86d) # Bugfixes π - Fix `array_filter` with callback optional persistance ([#3366](https://redirect.github.com/phpstan/phpstan-src/pull/3366)), [#11570](https://redirect.github.com/phpstan/phpstan/issues/11570), thanks [@robotomarvin](https://redirect.github.com/robotomarvin)! - RegexArrayShapeMatcher - infer constant string types in alternations ([#3369](https://redirect.github.com/phpstan/phpstan-src/pull/3369)), [#11222](https://redirect.github.com/phpstan/phpstan/issues/11222), thanks [@staabm](https://redirect.github.com/staabm)! - RegexArrayShapeMatcher - improve type inference in alternations ([#3375](https://redirect.github.com/phpstan/phpstan-src/pull/3375)), thanks [@staabm](https://redirect.github.com/staabm)! - Fix error on offset assignment to specialized strings ([#3365](https://redirect.github.com/phpstan/phpstan-src/pull/3365)), [#11572](https://redirect.github.com/phpstan/phpstan/issues/11572), thanks [@staabm](https://redirect.github.com/staabm)! - Narrow string on `strlen() ==` and `===` comparison with integer range ([#3342](https://redirect.github.com/phpstan/phpstan-src/pull/3342)), [#11548](https://redirect.github.com/phpstan/phpstan/issues/11548), thanks [@staabm](https://redirect.github.com/staabm)! - Fix `get_debug_type` produces wrong type for anonymous classes with parent ([#3374](https://redirect.github.com/phpstan/phpstan-src/pull/3374)), [#11562](https://redirect.github.com/phpstan/phpstan/issues/11562), thanks [@patrickkusebauch](https://redirect.github.com/patrickkusebauch)! - Fix preserving list when setting union offset type to a ConstantArrayTypeBuilder ([#3382](https://redirect.github.com/phpstan/phpstan-src/pull/3382)), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)! - Fix `preg_replace()` return type ([#3338](https://redirect.github.com/phpstan/phpstan-src/pull/3338)), [#11547](https://redirect.github.com/phpstan/phpstan/issues/11547), thanks [@staabm](https://redirect.github.com/staabm)! - Detect function variadic-ness anywhere deep in the declaration file ([#3370](https://redirect.github.com/phpstan/phpstan-src/pull/3370)), [#11559](https://redirect.github.com/phpstan/phpstan/issues/11559), [#4753](https://redirect.github.com/phpstan/phpstan/issues/4753), thanks [@staabm](https://redirect.github.com/staabm)! - Add DateTimeSubMethodThrowTypeExtension ([#3378](https://redirect.github.com/phpstan/phpstan-src/pull/3378)), [#11503](https://redirect.github.com/phpstan/phpstan/issues/11503), thanks [@VincentLanglet](https://redirect.github.com/VincentLanglet)! - Do not report `static` in PHPDoc tags above traits as an error (https://github.com/phpstan/phpstan-src/commit/777a82a0dc9d6a64a709c30a2e5bdb030b634464), [#11591](https://redirect.github.com/phpstan/phpstan/issues/11591) - RegexArrayShapeMatcher - Fix alternations containing a `$`-only case ([#3394](https://redirect.github.com/phpstan/phpstan-src/pull/3394)), [#11622](https://redirect.github.com/phpstan/phpstan/issues/11622), thanks [@staabm](https://redirect.github.com/staabm)! - Do not report missing implementation abstract method from trait when it's implicitly implemented by enum (https://github.com/phpstan/phpstan-src/commit/c50b71fd961e9009419b8fddac835b15696f4ff5), [#11592](https://redirect.github.com/phpstan/phpstan/issues/11592) - Fix how well conditional types play with pre-existing `@param-out` variable after assignment (https://github.com/phpstan/phpstan-src/commit/5892e8debfbe2f44306e6707c457665784b7dacd), [#11580](https://redirect.github.com/phpstan/phpstan/issues/11580), [#6642](https://redirect.github.com/phpstan/phpstan/issues/6642) # Internals π - Debugging function - `PHPStan\debugScope()` (https://github.com/phpstan/phpstan-src/commit/5909fb2dc78cbee46927c2cb23f7491dfef34165) - Added regression test ([#3368](https://redirect.github.com/phpstan/phpstan-src/pull/3368)), [#7856](https://redirect.github.com/phpstan/phpstan/issues/7856), thanks [@staabm](https://redirect.github.com/staabm)! - Simplify specifyTypesForConstantBinaryExpression ([#3392](https://redirect.github.com/phpstan/phpstan-src/pull/3392)), thanks [@staabm](https://redirect.github.com/staabm)! - Refactoring: introduce MethodTagTemplateTypeCheck (https://github.com/phpstan/phpstan-src/commit/47a85bf1453a076bade7a30c94c06c0825abca7c) - Simplify extensions (https://github.com/phpstan/phpstan-src/commit/c47730f1f97e4dc6ca9f120e2675ca709fc1402c) - Refactoring - extract MixinCheck (https://github.com/phpstan/phpstan-src/commit/57ccd8c4d4b16c7edec4c2c2de8589956de8284d) - MixinCheck - prepare for trait rules (https://github.com/phpstan/phpstan-src/commit/ba591420c26b174ae561e26aeed01ccf34da9dee)Configuration
π Schedule: Branch creation - "before 4pm every weekday except before 9am every weekday" in timezone America/New_York, 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.
This PR was generated by Mend Renovate. View the repository job log.