nikic/PHP-Parser (nikic/php-parser)
### [`v5.1.0`](https://togithub.com/nikic/PHP-Parser/blob/HEAD/CHANGELOG.md#Version-510-2024-07-01)
[Compare Source](https://togithub.com/nikic/PHP-Parser/compare/v5.0.2...v5.1.0)
##### Added
- \[8.4] Added support for dereferencing `new` expressions without parentheses.
##### Fixed
- Fixed redundant parentheses being added when pretty printing ternary expressions.
##### Changed
- Made some phpdoc types more precise.
phpstan/phpstan (phpstan/phpstan)
### [`v1.11.11`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.11)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.10...1.11.11)
# Improvements 🔧
- Narrow arrays in union based on count() with smaller/greater operator ([#3324](https://togithub.com/phpstan/phpstan-src/pull/3324)), [#11480](https://togithub.com/phpstan/phpstan/issues/11480), thanks [@staabm](https://togithub.com/staabm)!
- PHPStanDiagnoseExtension - show Composer packages with included config files (https://github.com/phpstan/phpstan-src/commit/58d202fddc5597a1fa274ca3b64c352717818c4f)
# Bugfixes 🐛
- RegexArrayShapeMatcher - optional non-last groups can be empty-string ([#3306](https://togithub.com/phpstan/phpstan-src/pull/3306)), [#11479](https://togithub.com/phpstan/phpstan/issues/11479), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - fix capturing item-array-shapes for preg_match_all ([#3307](https://togithub.com/phpstan/phpstan-src/pull/3307)), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Fix shape of single top level alternations ([#3299](https://togithub.com/phpstan/phpstan-src/pull/3299)), [#11462](https://togithub.com/phpstan/phpstan/issues/11462), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Fix matching literal "-" in character classes ([#3314](https://togithub.com/phpstan/phpstan-src/pull/3314)), [#11490](https://togithub.com/phpstan/phpstan/issues/11490), thanks [@staabm](https://togithub.com/staabm)!
- Improve sprintf support ([#3310](https://togithub.com/phpstan/phpstan-src/pull/3310)), [#11491](https://togithub.com/phpstan/phpstan/issues/11491), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Handle union and mixed in plus operation ([#3320](https://togithub.com/phpstan/phpstan-src/pull/3320)), [#3759](https://togithub.com/phpstan/phpstan/issues/3759), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Fix union with float should accept integer range ([#3318](https://togithub.com/phpstan/phpstan-src/pull/3318)), [#10248](https://togithub.com/phpstan/phpstan/issues/10248), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Fix array_intersect_key ([#3317](https://togithub.com/phpstan/phpstan-src/pull/3317)), [#10561](https://togithub.com/phpstan/phpstan/issues/10561), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Improve non strict `in_array()` ([#3319](https://togithub.com/phpstan/phpstan-src/pull/3319)), [#9436](https://togithub.com/phpstan/phpstan/issues/9436), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- String offset access leads to non-empty-string (single character) (https://github.com/phpstan/phpstan-src/commit/9439bba42047ab9561a091292568d7adf58e42ce), [#11506](https://togithub.com/phpstan/phpstan/issues/11506)
- Fix `AccessoryLiteralStringType::setOffsetValueType()` (https://github.com/phpstan/phpstan-src/commit/93c5226cb5711c8b1b846fcfe6d5ef2586d2b162)
- Fix `AccessoryNonFalsyStringType::setOffsetValueType()` (https://github.com/phpstan/phpstan-src/commit/c28c9362376286044b37755bedf49ab2228801dc)
- Improve IntDivThrowTypeExtension to support integer ranges ([#3325](https://togithub.com/phpstan/phpstan-src/pull/3325)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Fix array intersection between HasOffsetType and HasOffsetValueType (https://github.com/phpstan/phpstan-src/commit/07d64058830765dbb3bf194cffdf66c98db20a38), [#11518](https://togithub.com/phpstan/phpstan/issues/11518)
- Fix item type in list to constant array conversion with `count()` ([#3309](https://togithub.com/phpstan/phpstan-src/pull/3309)), thanks [@staabm](https://togithub.com/staabm)!
# Function signature fixes 🤖
- Fix imagick definition ([#3316](https://togithub.com/phpstan/phpstan-src/pull/3316)), [#10803](https://togithub.com/phpstan/phpstan/issues/10803), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
# Internals 🔍
- Turn Regex classes immutable where possible ([#3305](https://togithub.com/phpstan/phpstan-src/pull/3305)), thanks [@staabm](https://togithub.com/staabm)!
### [`v1.11.10`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.10)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.9...1.11.10)
# Bleeding edge 🔪
- Precise array shape for `preg_replace_callback()` `$matches` ([#3281](https://togithub.com/phpstan/phpstan-src/pull/3281)), thanks [@staabm](https://togithub.com/staabm)!
- Report invalid exclude paths in PHP config (https://github.com/phpstan/phpstan-src/commit/9718c14f1ffac81ba3d2bf331b4e8b4041a4d004)
*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 nonexistent paths in excludePaths by appending `(?)` (https://github.com/phpstan/phpstan-src/commit/39649c2b9db016edabdb813dfe39ae0fd46e0c09, https://github.com/phpstan/phpstan-src/commit/be65babffe40c48c303411abf8a56116a274b893), [#11436](https://togithub.com/phpstan/phpstan/issues/11436)
- Do not report nonexistent paths in ignoreErrors if `reportUnmatchedIgnoredErrors: false` (https://github.com/phpstan/phpstan-src/commit/b7fe9900d5933ffdbdeeb2b10877fd2764cb8bb8), [#11436](https://togithub.com/phpstan/phpstan/issues/11436)
- Narrow tagged unions based on `count()` with array size ([#3302](https://togithub.com/phpstan/phpstan-src/pull/3302)), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes 🐛
- RegularExpressionPatternRule: fix false positive in preg_quote() handling ([#3280](https://togithub.com/phpstan/phpstan-src/pull/3280)), [#11432](https://togithub.com/phpstan/phpstan/issues/11432), thanks [@staabm](https://togithub.com/staabm)!
- Support literal strings in RegexGroupParser ([#3284](https://togithub.com/phpstan/phpstan-src/pull/3284)), thanks [@staabm](https://togithub.com/staabm)!
- Support classes of literal strings in RegexGroupParser ([#3285](https://togithub.com/phpstan/phpstan-src/pull/3285)), thanks [@staabm](https://togithub.com/staabm)!
- Don't infer constant types for "i"-modfied patterns ([#3288](https://togithub.com/phpstan/phpstan-src/pull/3288)), thanks [@staabm](https://togithub.com/staabm)!
- Support non-falsy-string in RegexGroupParser ([#3289](https://togithub.com/phpstan/phpstan-src/pull/3289)), thanks [@staabm](https://togithub.com/staabm)!
- RegexGroupParser: Ignore whitespaces on "x"-modified patterns ([#3291](https://togithub.com/phpstan/phpstan/issues/3291)) ([#3291](https://togithub.com/phpstan/phpstan-src/pull/3291)), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher: fix preg_match_all with PREG_OFFSET_CAPTURE ([#3292](https://togithub.com/phpstan/phpstan-src/pull/3292)), [#11457](https://togithub.com/phpstan/phpstan/issues/11457), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Fix subject types ([#3300](https://togithub.com/phpstan/phpstan-src/pull/3300)), thanks [@staabm](https://togithub.com/staabm)!
- Fix `ConstantArrayType::isSuperTypeOf()` for empty array (https://github.com/phpstan/phpstan-src/commit/ed6bc0b93499b5c7463ba05aefb1377b9eb9d1e0)
- is_resource: adjust type specification for truthy context only ([#3298](https://togithub.com/phpstan/phpstan-src/pull/3298)), [#9687](https://togithub.com/phpstan/phpstan/issues/9687), thanks [@janedbal](https://togithub.com/janedbal)!
- Fix loose comparison between '1' and '+1' ([#3301](https://togithub.com/phpstan/phpstan-src/pull/3301)), thanks [@thg2k](https://togithub.com/thg2k)!
# Function signature fixes 🤖
- Update some mysqli function return types ([#3279](https://togithub.com/phpstan/phpstan-src/pull/3279)), [#8345](https://togithub.com/phpstan/phpstan/issues/8345), thanks [@mattschlosser](https://togithub.com/mattschlosser)!
# Internals 🔍
- Extracted RegexGroupParser from RegexArrayShapeMatcher ([#3278](https://togithub.com/phpstan/phpstan-src/pull/3278)), thanks [@staabm](https://togithub.com/staabm)!
- E2E test about path validation in ignoreErrors and excludePaths (https://github.com/phpstan/phpstan-src/commit/9246976958fb22e3464f7a25ef2ab97caed5aa44)
- RegularExpressionPatternRuleTest: utilize `preg_match()` array shape tests ([#3290](https://togithub.com/phpstan/phpstan-src/pull/3290)), thanks [@staabm](https://togithub.com/staabm)!
- Simplify RegexArrayShapeMatcher ([#3293](https://togithub.com/phpstan/phpstan-src/pull/3293)), thanks [@staabm](https://togithub.com/staabm)!
- Refactor RegexGroupParser - extract RegexAlternation class ([#3296](https://togithub.com/phpstan/phpstan-src/pull/3296)), thanks [@staabm](https://togithub.com/staabm)!
### [`v1.11.9`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.9)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.8...1.11.9)
# Bleeding edge 🔪
- RegularExpressionPatternRule: validate preg_quote'd patterns ([#3270](https://togithub.com/phpstan/phpstan-src/pull/3270)), thanks [@staabm](https://togithub.com/staabm)!
- No implicit wildcard in FileExcluder (https://github.com/phpstan/phpstan-src/commit/e19e6e5f8cfa706cc30e44a17276a6bc269f995c), [#10299](https://togithub.com/phpstan/phpstan/issues/10299)
- Precise array shape for `preg_match_all()` $matches ([#3256](https://togithub.com/phpstan/phpstan-src/pull/3256)), thanks [@staabm](https://togithub.com/staabm)!
*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 🔧
- DefaultStubFilesProvider - consider all composerAutoloaderProjectPaths when filtering 3rd party stub files (https://github.com/phpstan/phpstan-src/commit/582a0f8a744fa2ebda2d98783c55c78183e8bbed), [#11393](https://togithub.com/phpstan/phpstan/issues/11393)
# Bugfixes 🐛
- RegexArrayShapeMatcher: Fix non-emptiness of leading optional groups ([#3267](https://togithub.com/phpstan/phpstan-src/pull/3267)), [#11376](https://togithub.com/phpstan/phpstan/issues/11376), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher: Support resolving of constants in patterns ([#3265](https://togithub.com/phpstan/phpstan-src/pull/3265)), [#11384](https://togithub.com/phpstan/phpstan/issues/11384), thanks [@staabm](https://togithub.com/staabm)!
- RegexExpressionHelper - Support all bracket style delimiters ([#3273](https://togithub.com/phpstan/phpstan-src/pull/3273)), thanks [@staabm](https://togithub.com/staabm)!
- Regex parsing fixes for newline characters and marker verbs ([#3268](https://togithub.com/phpstan/phpstan-src/pull/3268)), [#11360](https://togithub.com/phpstan/phpstan/issues/11360), [#8948](https://togithub.com/phpstan/phpstan/issues/8948), thanks [@Seldaek](https://togithub.com/Seldaek)!
- RegexArrayShapeMatcher - Support 'n' modifier ([#3271](https://togithub.com/phpstan/phpstan-src/pull/3271)), thanks [@staabm](https://togithub.com/staabm)!
- Improve `abs()` return type ([#3263](https://togithub.com/phpstan/phpstan-src/pull/3263)), [#11367](https://togithub.com/phpstan/phpstan/issues/11367), thanks [@julienfalque](https://togithub.com/julienfalque)!
- UselessFunctionReturnValueRule: More precise error message ([#3266](https://togithub.com/phpstan/phpstan-src/pull/3266)), [#11377](https://togithub.com/phpstan/phpstan/issues/11377), thanks [@staabm](https://togithub.com/staabm)!
# Internals 🔍
- Extract RegexExpressionHelper ([#3270](https://togithub.com/phpstan/phpstan-src/pull/3270)), thanks [@staabm](https://togithub.com/staabm)!
- Refactor RegexArrayShapeMatcher ([#3274](https://togithub.com/phpstan/phpstan-src/pull/3274)), thanks [@staabm](https://togithub.com/staabm)!
### [`v1.11.8`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.8)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.7...1.11.8)
# Bleeding edge 🔪
- Report useless return values of function calls like `var_export` without `$return=true` ([#3225](https://togithub.com/phpstan/phpstan-src/pull/3225)), [#11320](https://togithub.com/phpstan/phpstan/issues/11320), thanks [@staabm](https://togithub.com/staabm)!
- Check mixed in binary operator ([#3231](https://togithub.com/phpstan/phpstan-src/pull/3231)), [#7538](https://togithub.com/phpstan/phpstan/issues/7538), [#10440](https://togithub.com/phpstan/phpstan/issues/10440), thanks [@schlndh](https://togithub.com/schlndh)!
- Check vprintf/vsprintf arguments against placeholder count ([#3126](https://togithub.com/phpstan/phpstan-src/pull/3126)), thanks [@staabm](https://togithub.com/staabm)!
- Check mixed in unary operator ([#3253](https://togithub.com/phpstan/phpstan-src/pull/3253)), thanks [@schlndh](https://togithub.com/schlndh)!
- Report "missing return" error closer to where the return is missing (https://github.com/phpstan/phpstan-src/commit/04f8636e6577cbcaefc944725eed74c0d7865ead)
- Stricter ++/-- operator check ([#3255](https://togithub.com/phpstan/phpstan-src/pull/3255)), thanks [@schlndh](https://togithub.com/schlndh)!
- Check preg_quote delimiter sanity ([#3252](https://togithub.com/phpstan/phpstan-src/pull/3252)), [#11338](https://togithub.com/phpstan/phpstan/issues/11338), thanks [@staabm](https://togithub.com/staabm)!
*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 🔧
- Precise array shape for `$matches` from `preg_match()` improvements:
- RegexArrayShapeMatcher - trailling groups are not optional when PREG_UNMATCHED_AS_NULL ([#3219](https://togithub.com/phpstan/phpstan-src/pull/3219)), [#11311](https://togithub.com/phpstan/phpstan/issues/11311), thanks [@staabm](https://togithub.com/staabm)!
- Fix preg_match named capturing groups ([#3228](https://togithub.com/phpstan/phpstan-src/pull/3228)), [#11323](https://togithub.com/phpstan/phpstan/issues/11323), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Fix optional groups with PREG_UNMATCHED_AS_NULL ([#3229](https://togithub.com/phpstan/phpstan-src/pull/3229)), thanks [@staabm](https://togithub.com/staabm)!
- Allow overriding the PHP 7.2 support for PREG_UNMATCHED_AS_NULL ([#3226](https://togithub.com/phpstan/phpstan-src/pull/3226)), thanks [@Seldaek](https://togithub.com/Seldaek)!
- RegexArrayShapeMatcher - Fix PREG_UNMATCHED_AS_NULL with optional leading groups ([#3234](https://togithub.com/phpstan/phpstan-src/pull/3234)), [#11331](https://togithub.com/phpstan/phpstan/issues/11331), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Support preg_quote()'d patterns ([#3233](https://togithub.com/phpstan/phpstan-src/pull/3233)), [#11332](https://togithub.com/phpstan/phpstan/issues/11332), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - Fix PREG_UNMATCHED_AS_NULL with top level alternation ([#3238](https://togithub.com/phpstan/phpstan-src/pull/3238)), thanks [@staabm](https://togithub.com/staabm)!
- RegexArrayShapeMatcher - More precise non-empty-string and numeric-string ([#3249](https://togithub.com/phpstan/phpstan-src/pull/3249)), thanks [@staabm](https://togithub.com/staabm)!
- Fix regex parsing by completing the grammar ([#3244](https://togithub.com/phpstan/phpstan-src/pull/3244)), thanks [@Seldaek](https://togithub.com/Seldaek)!
- RegexArrayShapeMatcher - `(\d*)` can be empty-string ([#3257](https://togithub.com/phpstan/phpstan-src/pull/3257)), thanks [@staabm](https://togithub.com/staabm)!
- Add `diagnose` command to run DiagnoseExtensions (https://github.com/phpstan/phpstan-src/commit/22c84d2e64dd30780c995d8a720a487bb484dc02)
- Diagnose extension: Info about extensions installed via extension-installer (https://github.com/phpstan/phpstan-src/commit/db71f04aa14f5be6421e92d7b76031605de5ad80)
- Diagnose extension - where is PHPStan running from (https://github.com/phpstan/phpstan-src/commit/76464eed45dee10154cb25b9f05586c346046adc)
- Parallel scheduler becomes DiagnoseExtension (https://github.com/phpstan/phpstan-src/commit/c7c9689cd86a9811eeaa2bb365ab5bc302109802)
- ResultCacheManager: output restore time in debug mode ([#3224](https://togithub.com/phpstan/phpstan-src/pull/3224)), thanks [@janedbal](https://togithub.com/janedbal)!
- Add hint as to what might be wrong when invalid identifiers are used ([#3230](https://togithub.com/phpstan/phpstan-src/pull/3230)), thanks [@Seldaek](https://togithub.com/Seldaek)!
- Optimize array_map with many arrays (https://github.com/phpstan/phpstan-src/commit/09fbc92c415a2b9789463b3ca8fa7c73cc3475bd), [#11297](https://togithub.com/phpstan/phpstan/issues/11297)
- Improved `sprintf()` inference ([#3232](https://togithub.com/phpstan/phpstan-src/pull/3232)), thanks [@staabm](https://togithub.com/staabm)!
- Print elapsed analysis time with `-v` ([#3239](https://togithub.com/phpstan/phpstan-src/pull/3239), [#3242](https://togithub.com/phpstan/phpstan-src/pull/3242)), thanks [@janedbal](https://togithub.com/janedbal)!
- More precise `sprintf()` format arg-based return type ([#3192](https://togithub.com/phpstan/phpstan-src/pull/3192)), [#11248](https://togithub.com/phpstan/phpstan/issues/11248), [#10493](https://togithub.com/phpstan/phpstan/issues/10493), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes 🐛
- Fix return type of round/ceil/floor in non strict type environment ([#3223](https://togithub.com/phpstan/phpstan-src/pull/3223)), [#11319](https://togithub.com/phpstan/phpstan/issues/11319), thanks [@BackEndTea](https://togithub.com/BackEndTea)!
- Fix statement analysis after early-terminating statements ([#3227](https://togithub.com/phpstan/phpstan-src/pull/3227)), [#11179](https://togithub.com/phpstan/phpstan/issues/11179), thanks [@takaram](https://togithub.com/takaram)!
- Fix match of union of enums (https://github.com/phpstan/phpstan-src/commit/44e40f054569f3eeed81280bf0d2f50659fb1056), [#11313](https://togithub.com/phpstan/phpstan/issues/11313)
- Fix `pathinfo()` return type for union type flags ([#3120](https://togithub.com/phpstan/phpstan-src/pull/3120)), [#10760](https://togithub.com/phpstan/phpstan/issues/10760), thanks [@staabm](https://togithub.com/staabm)!
- Fix and simplify discovering composer autoloader project path (https://github.com/phpstan/phpstan-src/commit/2cc6cda6969a63267e70c2074efa0477b69c9083)
- Ignore non-explicit NeverType in purity check ([#3243](https://togithub.com/phpstan/phpstan-src/pull/3243)), [#11207](https://togithub.com/phpstan/phpstan/issues/11207), thanks [@staabm](https://togithub.com/staabm)!
- Non-numeric strings in `pow()` lead to error ([#2796](https://togithub.com/phpstan/phpstan-src/pull/2796)), [#10125](https://togithub.com/phpstan/phpstan/issues/10125), thanks [@staabm](https://togithub.com/staabm)!
- Closure with by-ref parameter is impure (https://github.com/phpstan/phpstan-src/commit/f1abacddb3787ce279e51b1f88f1543d52b9759c), [#11361](https://togithub.com/phpstan/phpstan/issues/11361)
- PathRoutingParser - check if the file is a symlink that might be in analysed paths (https://github.com/phpstan/phpstan-src/commit/c9a6d2e61edfad189a765df3c3a06674a10d4fb5), [#6585](https://togithub.com/phpstan/phpstan/issues/6585)
# Function signature fixes 🤖
- Fix new headers functions in php 8.4 ([#3221](https://togithub.com/phpstan/phpstan-src/pull/3221)), thanks [@Seldaek](https://togithub.com/Seldaek)!
# Internals 🔍
- Indicate file on TypeInferenceTestCase validation errors ([#3166](https://togithub.com/phpstan/phpstan-src/pull/3166)), thanks [@staabm](https://togithub.com/staabm)!
- nette/di - patch for PHP 8.4 support (https://github.com/phpstan/phpstan-src/commit/1245ea73e5a24aefc4fac87ebe73d9720deac7c9)
- InternalError is part of `@api` ([#3240](https://togithub.com/phpstan/phpstan-src/pull/3240)), thanks [@janedbal](https://togithub.com/janedbal)!
- Refactor RegexArrayShapeMatcher ([#3248](https://togithub.com/phpstan/phpstan-src/pull/3248)), thanks [@staabm](https://togithub.com/staabm)!
- Refactor PrintfParametersRule ([#3247](https://togithub.com/phpstan/phpstan-src/pull/3247)), thanks [@staabm](https://togithub.com/staabm)!
- Simplify RegularExpressionPatternRule ([#3251](https://togithub.com/phpstan/phpstan-src/pull/3251)), thanks [@staabm](https://togithub.com/staabm)!
- Copy regex grammar from hoa/regex into the project (https://github.com/phpstan/phpstan-src/commit/bacb3c6d11edb5f30176e70ade6e72ac4f2e23dd)
- Apply Grammar.patch to reflect previous phpstan state (https://github.com/phpstan/phpstan-src/commit/e71cff468aa4695e9bfa09d01e0ec5194890e7f1)
- ExecutionEndNode always has a statement (https://github.com/phpstan/phpstan-src/commit/27e0f91efad4c9fcacae98b2e3394c069e9e5095)
- Fix PHP_VERSION_ID comparison in test ([#3254](https://togithub.com/phpstan/phpstan-src/pull/3254)), thanks [@staabm](https://togithub.com/staabm)!
- Apply the stricter signatures for PHP 8.0 after the basic ones for PHP 8.0 ([#3259](https://togithub.com/phpstan/phpstan-src/pull/3259)), thanks [@thg2k](https://togithub.com/thg2k)!
- Refactor function signature map files loading ([#3262](https://togithub.com/phpstan/phpstan-src/pull/3262)), thanks [@thg2k](https://togithub.com/thg2k)!
### [`v1.11.7`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.7)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.6...1.11.7)
# Improvements 🔧
- Rework `match` expression analysis with enum with performance in mind (https://github.com/phpstan/phpstan-src/commit/b98abe01ca2a589c964970ea42128ae9b752890b), [#11263](https://togithub.com/phpstan/phpstan/issues/11263)
- DiagnoseExtension (https://github.com/phpstan/phpstan-src/commit/d55933fa0c8d6c9d91c5d30f70313e1c15b2c7f9)
- This extension can output any diagnostic information to stderr after analysis
- PHPStan displays this information when running the "analyse" command with `-vvv` CLI option.
- Result cache - debug message about successfully restored cache (https://github.com/phpstan/phpstan-src/commit/979055fceeaefec30c1eded52550012f0c1333b6)
- Show a hint about `-vv` for unignorable errors when generating the baseline (https://github.com/phpstan/phpstan-src/commit/d931c8987563fbe5a05e411722a6f53da6f1b555), [#3973](https://togithub.com/phpstan/phpstan/issues/3973)
- Limit the depth when resolving closure type for performance reasons (https://github.com/phpstan/phpstan-src/commit/2c08dfa8d0f975654d52fe279a950c54415076b5?w=1), [#11283](https://togithub.com/phpstan/phpstan/issues/11283)
- `MutatingScope::resolveType()` - cache closure body analysis data (https://github.com/phpstan/phpstan-src/commit/fd3115652b76278fa6ddf8ba40b41fc751642153), [#11283](https://togithub.com/phpstan/phpstan/issues/11283)
# Bugfixes 🐛
- Observe `@no-named-arguments` above class (https://github.com/phpstan/phpstan-src/commit/815270d8933b9cdefa4613f0baf17bcbff91be6f), [#11275](https://togithub.com/phpstan/phpstan/issues/11275)
- Fix `count()` narrowing on $matches ([#3210](https://togithub.com/phpstan/phpstan-src/pull/3210)), [#11277](https://togithub.com/phpstan/phpstan/issues/11277), thanks [@staabm](https://togithub.com/staabm)!
- Try preventing "Method was not found in reflection of class" when getting a method prototype (https://github.com/phpstan/phpstan-src/commit/25658f64f0bcfe784893104864d92032cce33e96), [#11269](https://togithub.com/phpstan/phpstan/issues/11269), [#11251](https://togithub.com/phpstan/phpstan/issues/11251)
- RegexArrayShapeMatcher - support resetting non-capturing groups ([#3212](https://togithub.com/phpstan/phpstan-src/pull/3212)), [#11291](https://togithub.com/phpstan/phpstan/issues/11291), thanks [@staabm](https://togithub.com/staabm)!
- Prevent out-of-memory errors while regex array shape inference ([#3213](https://togithub.com/phpstan/phpstan-src/pull/3213)), [#11292](https://togithub.com/phpstan/phpstan/issues/11292), thanks [@staabm](https://togithub.com/staabm)!
# Function signature fixes 🤖
- `getimagesize`, `getimagesizefromstring`: zero is a possible value for height and width ([#3207](https://togithub.com/phpstan/phpstan-src/pull/3207)), thanks [@mfruehauf](https://togithub.com/mfruehauf)!
# Internals 🔍
- Faster `ObjectType::getEnumCases()` ([#3203](https://togithub.com/phpstan/phpstan-src/pull/3203), [#3204](https://togithub.com/phpstan/phpstan-src/pull/3204)), [#11263](https://togithub.com/phpstan/phpstan/issues/11263), thanks [@staabm](https://togithub.com/staabm)!
- Update composer-dependency-analyser to 1.6.0 ([#3205](https://togithub.com/phpstan/phpstan-src/pull/3205)), thanks [@janedbal](https://togithub.com/janedbal)!
### [`v1.11.6`](https://togithub.com/phpstan/phpstan/compare/1.11.5...1.11.6)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.5...1.11.6)
symfony/console (symfony/console)
### [`v7.1.3`](https://togithub.com/symfony/console/releases/tag/v7.1.3)
[Compare Source](https://togithub.com/symfony/console/compare/v7.1.2...v7.1.3)
**Changelog** (https://github.com/symfony/console/compare/v7.1.2...v7.1.3)
- bug [symfony/symfony#57815](https://togithub.com/symfony/symfony/issues/57815) \[Console]\[PhpUnitBridge]\[VarDumper] Fix `NO_COLOR` empty value handling (@alexandre-daubois)
symfony/finder (symfony/finder)
### [`v7.1.3`](https://togithub.com/symfony/finder/releases/tag/v7.1.3)
[Compare Source](https://togithub.com/symfony/finder/compare/v7.1.1...v7.1.3)
**Changelog** (https://github.com/symfony/finder/compare/v7.1.2...v7.1.3)
- no significant changes
Configuration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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:
5.0.2
->5.1.0
1.11.5
->1.11.11
7.1.2
->7.1.3
7.1.1
->7.1.3
Release Notes
nikic/PHP-Parser (nikic/php-parser)
### [`v5.1.0`](https://togithub.com/nikic/PHP-Parser/blob/HEAD/CHANGELOG.md#Version-510-2024-07-01) [Compare Source](https://togithub.com/nikic/PHP-Parser/compare/v5.0.2...v5.1.0) ##### Added - \[8.4] Added support for dereferencing `new` expressions without parentheses. ##### Fixed - Fixed redundant parentheses being added when pretty printing ternary expressions. ##### Changed - Made some phpdoc types more precise.phpstan/phpstan (phpstan/phpstan)
### [`v1.11.11`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.11) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.10...1.11.11) # Improvements 🔧 - Narrow arrays in union based on count() with smaller/greater operator ([#3324](https://togithub.com/phpstan/phpstan-src/pull/3324)), [#11480](https://togithub.com/phpstan/phpstan/issues/11480), thanks [@staabm](https://togithub.com/staabm)! - PHPStanDiagnoseExtension - show Composer packages with included config files (https://github.com/phpstan/phpstan-src/commit/58d202fddc5597a1fa274ca3b64c352717818c4f) # Bugfixes 🐛 - RegexArrayShapeMatcher - optional non-last groups can be empty-string ([#3306](https://togithub.com/phpstan/phpstan-src/pull/3306)), [#11479](https://togithub.com/phpstan/phpstan/issues/11479), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - fix capturing item-array-shapes for preg_match_all ([#3307](https://togithub.com/phpstan/phpstan-src/pull/3307)), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Fix shape of single top level alternations ([#3299](https://togithub.com/phpstan/phpstan-src/pull/3299)), [#11462](https://togithub.com/phpstan/phpstan/issues/11462), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Fix matching literal "-" in character classes ([#3314](https://togithub.com/phpstan/phpstan-src/pull/3314)), [#11490](https://togithub.com/phpstan/phpstan/issues/11490), thanks [@staabm](https://togithub.com/staabm)! - Improve sprintf support ([#3310](https://togithub.com/phpstan/phpstan-src/pull/3310)), [#11491](https://togithub.com/phpstan/phpstan/issues/11491), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Handle union and mixed in plus operation ([#3320](https://togithub.com/phpstan/phpstan-src/pull/3320)), [#3759](https://togithub.com/phpstan/phpstan/issues/3759), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Fix union with float should accept integer range ([#3318](https://togithub.com/phpstan/phpstan-src/pull/3318)), [#10248](https://togithub.com/phpstan/phpstan/issues/10248), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Fix array_intersect_key ([#3317](https://togithub.com/phpstan/phpstan-src/pull/3317)), [#10561](https://togithub.com/phpstan/phpstan/issues/10561), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Improve non strict `in_array()` ([#3319](https://togithub.com/phpstan/phpstan-src/pull/3319)), [#9436](https://togithub.com/phpstan/phpstan/issues/9436), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - String offset access leads to non-empty-string (single character) (https://github.com/phpstan/phpstan-src/commit/9439bba42047ab9561a091292568d7adf58e42ce), [#11506](https://togithub.com/phpstan/phpstan/issues/11506) - Fix `AccessoryLiteralStringType::setOffsetValueType()` (https://github.com/phpstan/phpstan-src/commit/93c5226cb5711c8b1b846fcfe6d5ef2586d2b162) - Fix `AccessoryNonFalsyStringType::setOffsetValueType()` (https://github.com/phpstan/phpstan-src/commit/c28c9362376286044b37755bedf49ab2228801dc) - Improve IntDivThrowTypeExtension to support integer ranges ([#3325](https://togithub.com/phpstan/phpstan-src/pull/3325)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Fix array intersection between HasOffsetType and HasOffsetValueType (https://github.com/phpstan/phpstan-src/commit/07d64058830765dbb3bf194cffdf66c98db20a38), [#11518](https://togithub.com/phpstan/phpstan/issues/11518) - Fix item type in list to constant array conversion with `count()` ([#3309](https://togithub.com/phpstan/phpstan-src/pull/3309)), thanks [@staabm](https://togithub.com/staabm)! # Function signature fixes 🤖 - Fix imagick definition ([#3316](https://togithub.com/phpstan/phpstan-src/pull/3316)), [#10803](https://togithub.com/phpstan/phpstan/issues/10803), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! # Internals 🔍 - Turn Regex classes immutable where possible ([#3305](https://togithub.com/phpstan/phpstan-src/pull/3305)), thanks [@staabm](https://togithub.com/staabm)! ### [`v1.11.10`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.10) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.9...1.11.10) # Bleeding edge 🔪 - Precise array shape for `preg_replace_callback()` `$matches` ([#3281](https://togithub.com/phpstan/phpstan-src/pull/3281)), thanks [@staabm](https://togithub.com/staabm)! - Report invalid exclude paths in PHP config (https://github.com/phpstan/phpstan-src/commit/9718c14f1ffac81ba3d2bf331b4e8b4041a4d004) *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 nonexistent paths in excludePaths by appending `(?)` (https://github.com/phpstan/phpstan-src/commit/39649c2b9db016edabdb813dfe39ae0fd46e0c09, https://github.com/phpstan/phpstan-src/commit/be65babffe40c48c303411abf8a56116a274b893), [#11436](https://togithub.com/phpstan/phpstan/issues/11436) - Do not report nonexistent paths in ignoreErrors if `reportUnmatchedIgnoredErrors: false` (https://github.com/phpstan/phpstan-src/commit/b7fe9900d5933ffdbdeeb2b10877fd2764cb8bb8), [#11436](https://togithub.com/phpstan/phpstan/issues/11436) - Narrow tagged unions based on `count()` with array size ([#3302](https://togithub.com/phpstan/phpstan-src/pull/3302)), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes 🐛 - RegularExpressionPatternRule: fix false positive in preg_quote() handling ([#3280](https://togithub.com/phpstan/phpstan-src/pull/3280)), [#11432](https://togithub.com/phpstan/phpstan/issues/11432), thanks [@staabm](https://togithub.com/staabm)! - Support literal strings in RegexGroupParser ([#3284](https://togithub.com/phpstan/phpstan-src/pull/3284)), thanks [@staabm](https://togithub.com/staabm)! - Support classes of literal strings in RegexGroupParser ([#3285](https://togithub.com/phpstan/phpstan-src/pull/3285)), thanks [@staabm](https://togithub.com/staabm)! - Don't infer constant types for "i"-modfied patterns ([#3288](https://togithub.com/phpstan/phpstan-src/pull/3288)), thanks [@staabm](https://togithub.com/staabm)! - Support non-falsy-string in RegexGroupParser ([#3289](https://togithub.com/phpstan/phpstan-src/pull/3289)), thanks [@staabm](https://togithub.com/staabm)! - RegexGroupParser: Ignore whitespaces on "x"-modified patterns ([#3291](https://togithub.com/phpstan/phpstan/issues/3291)) ([#3291](https://togithub.com/phpstan/phpstan-src/pull/3291)), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher: fix preg_match_all with PREG_OFFSET_CAPTURE ([#3292](https://togithub.com/phpstan/phpstan-src/pull/3292)), [#11457](https://togithub.com/phpstan/phpstan/issues/11457), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Fix subject types ([#3300](https://togithub.com/phpstan/phpstan-src/pull/3300)), thanks [@staabm](https://togithub.com/staabm)! - Fix `ConstantArrayType::isSuperTypeOf()` for empty array (https://github.com/phpstan/phpstan-src/commit/ed6bc0b93499b5c7463ba05aefb1377b9eb9d1e0) - is_resource: adjust type specification for truthy context only ([#3298](https://togithub.com/phpstan/phpstan-src/pull/3298)), [#9687](https://togithub.com/phpstan/phpstan/issues/9687), thanks [@janedbal](https://togithub.com/janedbal)! - Fix loose comparison between '1' and '+1' ([#3301](https://togithub.com/phpstan/phpstan-src/pull/3301)), thanks [@thg2k](https://togithub.com/thg2k)! # Function signature fixes 🤖 - Update some mysqli function return types ([#3279](https://togithub.com/phpstan/phpstan-src/pull/3279)), [#8345](https://togithub.com/phpstan/phpstan/issues/8345), thanks [@mattschlosser](https://togithub.com/mattschlosser)! # Internals 🔍 - Extracted RegexGroupParser from RegexArrayShapeMatcher ([#3278](https://togithub.com/phpstan/phpstan-src/pull/3278)), thanks [@staabm](https://togithub.com/staabm)! - E2E test about path validation in ignoreErrors and excludePaths (https://github.com/phpstan/phpstan-src/commit/9246976958fb22e3464f7a25ef2ab97caed5aa44) - RegularExpressionPatternRuleTest: utilize `preg_match()` array shape tests ([#3290](https://togithub.com/phpstan/phpstan-src/pull/3290)), thanks [@staabm](https://togithub.com/staabm)! - Simplify RegexArrayShapeMatcher ([#3293](https://togithub.com/phpstan/phpstan-src/pull/3293)), thanks [@staabm](https://togithub.com/staabm)! - Refactor RegexGroupParser - extract RegexAlternation class ([#3296](https://togithub.com/phpstan/phpstan-src/pull/3296)), thanks [@staabm](https://togithub.com/staabm)! ### [`v1.11.9`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.9) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.8...1.11.9) # Bleeding edge 🔪 - RegularExpressionPatternRule: validate preg_quote'd patterns ([#3270](https://togithub.com/phpstan/phpstan-src/pull/3270)), thanks [@staabm](https://togithub.com/staabm)! - No implicit wildcard in FileExcluder (https://github.com/phpstan/phpstan-src/commit/e19e6e5f8cfa706cc30e44a17276a6bc269f995c), [#10299](https://togithub.com/phpstan/phpstan/issues/10299) - Precise array shape for `preg_match_all()` $matches ([#3256](https://togithub.com/phpstan/phpstan-src/pull/3256)), thanks [@staabm](https://togithub.com/staabm)! *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 🔧 - DefaultStubFilesProvider - consider all composerAutoloaderProjectPaths when filtering 3rd party stub files (https://github.com/phpstan/phpstan-src/commit/582a0f8a744fa2ebda2d98783c55c78183e8bbed), [#11393](https://togithub.com/phpstan/phpstan/issues/11393) # Bugfixes 🐛 - RegexArrayShapeMatcher: Fix non-emptiness of leading optional groups ([#3267](https://togithub.com/phpstan/phpstan-src/pull/3267)), [#11376](https://togithub.com/phpstan/phpstan/issues/11376), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher: Support resolving of constants in patterns ([#3265](https://togithub.com/phpstan/phpstan-src/pull/3265)), [#11384](https://togithub.com/phpstan/phpstan/issues/11384), thanks [@staabm](https://togithub.com/staabm)! - RegexExpressionHelper - Support all bracket style delimiters ([#3273](https://togithub.com/phpstan/phpstan-src/pull/3273)), thanks [@staabm](https://togithub.com/staabm)! - Regex parsing fixes for newline characters and marker verbs ([#3268](https://togithub.com/phpstan/phpstan-src/pull/3268)), [#11360](https://togithub.com/phpstan/phpstan/issues/11360), [#8948](https://togithub.com/phpstan/phpstan/issues/8948), thanks [@Seldaek](https://togithub.com/Seldaek)! - RegexArrayShapeMatcher - Support 'n' modifier ([#3271](https://togithub.com/phpstan/phpstan-src/pull/3271)), thanks [@staabm](https://togithub.com/staabm)! - Improve `abs()` return type ([#3263](https://togithub.com/phpstan/phpstan-src/pull/3263)), [#11367](https://togithub.com/phpstan/phpstan/issues/11367), thanks [@julienfalque](https://togithub.com/julienfalque)! - UselessFunctionReturnValueRule: More precise error message ([#3266](https://togithub.com/phpstan/phpstan-src/pull/3266)), [#11377](https://togithub.com/phpstan/phpstan/issues/11377), thanks [@staabm](https://togithub.com/staabm)! # Internals 🔍 - Extract RegexExpressionHelper ([#3270](https://togithub.com/phpstan/phpstan-src/pull/3270)), thanks [@staabm](https://togithub.com/staabm)! - Refactor RegexArrayShapeMatcher ([#3274](https://togithub.com/phpstan/phpstan-src/pull/3274)), thanks [@staabm](https://togithub.com/staabm)! ### [`v1.11.8`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.8) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.7...1.11.8) # Bleeding edge 🔪 - Report useless return values of function calls like `var_export` without `$return=true` ([#3225](https://togithub.com/phpstan/phpstan-src/pull/3225)), [#11320](https://togithub.com/phpstan/phpstan/issues/11320), thanks [@staabm](https://togithub.com/staabm)! - Check mixed in binary operator ([#3231](https://togithub.com/phpstan/phpstan-src/pull/3231)), [#7538](https://togithub.com/phpstan/phpstan/issues/7538), [#10440](https://togithub.com/phpstan/phpstan/issues/10440), thanks [@schlndh](https://togithub.com/schlndh)! - Check vprintf/vsprintf arguments against placeholder count ([#3126](https://togithub.com/phpstan/phpstan-src/pull/3126)), thanks [@staabm](https://togithub.com/staabm)! - Check mixed in unary operator ([#3253](https://togithub.com/phpstan/phpstan-src/pull/3253)), thanks [@schlndh](https://togithub.com/schlndh)! - Report "missing return" error closer to where the return is missing (https://github.com/phpstan/phpstan-src/commit/04f8636e6577cbcaefc944725eed74c0d7865ead) - Stricter ++/-- operator check ([#3255](https://togithub.com/phpstan/phpstan-src/pull/3255)), thanks [@schlndh](https://togithub.com/schlndh)! - Check preg_quote delimiter sanity ([#3252](https://togithub.com/phpstan/phpstan-src/pull/3252)), [#11338](https://togithub.com/phpstan/phpstan/issues/11338), thanks [@staabm](https://togithub.com/staabm)! *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 🔧 - Precise array shape for `$matches` from `preg_match()` improvements: - RegexArrayShapeMatcher - trailling groups are not optional when PREG_UNMATCHED_AS_NULL ([#3219](https://togithub.com/phpstan/phpstan-src/pull/3219)), [#11311](https://togithub.com/phpstan/phpstan/issues/11311), thanks [@staabm](https://togithub.com/staabm)! - Fix preg_match named capturing groups ([#3228](https://togithub.com/phpstan/phpstan-src/pull/3228)), [#11323](https://togithub.com/phpstan/phpstan/issues/11323), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Fix optional groups with PREG_UNMATCHED_AS_NULL ([#3229](https://togithub.com/phpstan/phpstan-src/pull/3229)), thanks [@staabm](https://togithub.com/staabm)! - Allow overriding the PHP 7.2 support for PREG_UNMATCHED_AS_NULL ([#3226](https://togithub.com/phpstan/phpstan-src/pull/3226)), thanks [@Seldaek](https://togithub.com/Seldaek)! - RegexArrayShapeMatcher - Fix PREG_UNMATCHED_AS_NULL with optional leading groups ([#3234](https://togithub.com/phpstan/phpstan-src/pull/3234)), [#11331](https://togithub.com/phpstan/phpstan/issues/11331), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Support preg_quote()'d patterns ([#3233](https://togithub.com/phpstan/phpstan-src/pull/3233)), [#11332](https://togithub.com/phpstan/phpstan/issues/11332), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - Fix PREG_UNMATCHED_AS_NULL with top level alternation ([#3238](https://togithub.com/phpstan/phpstan-src/pull/3238)), thanks [@staabm](https://togithub.com/staabm)! - RegexArrayShapeMatcher - More precise non-empty-string and numeric-string ([#3249](https://togithub.com/phpstan/phpstan-src/pull/3249)), thanks [@staabm](https://togithub.com/staabm)! - Fix regex parsing by completing the grammar ([#3244](https://togithub.com/phpstan/phpstan-src/pull/3244)), thanks [@Seldaek](https://togithub.com/Seldaek)! - RegexArrayShapeMatcher - `(\d*)` can be empty-string ([#3257](https://togithub.com/phpstan/phpstan-src/pull/3257)), thanks [@staabm](https://togithub.com/staabm)! - Add `diagnose` command to run DiagnoseExtensions (https://github.com/phpstan/phpstan-src/commit/22c84d2e64dd30780c995d8a720a487bb484dc02) - Diagnose extension: Info about extensions installed via extension-installer (https://github.com/phpstan/phpstan-src/commit/db71f04aa14f5be6421e92d7b76031605de5ad80) - Diagnose extension - where is PHPStan running from (https://github.com/phpstan/phpstan-src/commit/76464eed45dee10154cb25b9f05586c346046adc) - Parallel scheduler becomes DiagnoseExtension (https://github.com/phpstan/phpstan-src/commit/c7c9689cd86a9811eeaa2bb365ab5bc302109802) - ResultCacheManager: output restore time in debug mode ([#3224](https://togithub.com/phpstan/phpstan-src/pull/3224)), thanks [@janedbal](https://togithub.com/janedbal)! - Add hint as to what might be wrong when invalid identifiers are used ([#3230](https://togithub.com/phpstan/phpstan-src/pull/3230)), thanks [@Seldaek](https://togithub.com/Seldaek)! - Optimize array_map with many arrays (https://github.com/phpstan/phpstan-src/commit/09fbc92c415a2b9789463b3ca8fa7c73cc3475bd), [#11297](https://togithub.com/phpstan/phpstan/issues/11297) - Improved `sprintf()` inference ([#3232](https://togithub.com/phpstan/phpstan-src/pull/3232)), thanks [@staabm](https://togithub.com/staabm)! - Print elapsed analysis time with `-v` ([#3239](https://togithub.com/phpstan/phpstan-src/pull/3239), [#3242](https://togithub.com/phpstan/phpstan-src/pull/3242)), thanks [@janedbal](https://togithub.com/janedbal)! - More precise `sprintf()` format arg-based return type ([#3192](https://togithub.com/phpstan/phpstan-src/pull/3192)), [#11248](https://togithub.com/phpstan/phpstan/issues/11248), [#10493](https://togithub.com/phpstan/phpstan/issues/10493), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes 🐛 - Fix return type of round/ceil/floor in non strict type environment ([#3223](https://togithub.com/phpstan/phpstan-src/pull/3223)), [#11319](https://togithub.com/phpstan/phpstan/issues/11319), thanks [@BackEndTea](https://togithub.com/BackEndTea)! - Fix statement analysis after early-terminating statements ([#3227](https://togithub.com/phpstan/phpstan-src/pull/3227)), [#11179](https://togithub.com/phpstan/phpstan/issues/11179), thanks [@takaram](https://togithub.com/takaram)! - Fix match of union of enums (https://github.com/phpstan/phpstan-src/commit/44e40f054569f3eeed81280bf0d2f50659fb1056), [#11313](https://togithub.com/phpstan/phpstan/issues/11313) - Fix `pathinfo()` return type for union type flags ([#3120](https://togithub.com/phpstan/phpstan-src/pull/3120)), [#10760](https://togithub.com/phpstan/phpstan/issues/10760), thanks [@staabm](https://togithub.com/staabm)! - Fix and simplify discovering composer autoloader project path (https://github.com/phpstan/phpstan-src/commit/2cc6cda6969a63267e70c2074efa0477b69c9083) - Ignore non-explicit NeverType in purity check ([#3243](https://togithub.com/phpstan/phpstan-src/pull/3243)), [#11207](https://togithub.com/phpstan/phpstan/issues/11207), thanks [@staabm](https://togithub.com/staabm)! - Non-numeric strings in `pow()` lead to error ([#2796](https://togithub.com/phpstan/phpstan-src/pull/2796)), [#10125](https://togithub.com/phpstan/phpstan/issues/10125), thanks [@staabm](https://togithub.com/staabm)! - Closure with by-ref parameter is impure (https://github.com/phpstan/phpstan-src/commit/f1abacddb3787ce279e51b1f88f1543d52b9759c), [#11361](https://togithub.com/phpstan/phpstan/issues/11361) - PathRoutingParser - check if the file is a symlink that might be in analysed paths (https://github.com/phpstan/phpstan-src/commit/c9a6d2e61edfad189a765df3c3a06674a10d4fb5), [#6585](https://togithub.com/phpstan/phpstan/issues/6585) # Function signature fixes 🤖 - Fix new headers functions in php 8.4 ([#3221](https://togithub.com/phpstan/phpstan-src/pull/3221)), thanks [@Seldaek](https://togithub.com/Seldaek)! # Internals 🔍 - Indicate file on TypeInferenceTestCase validation errors ([#3166](https://togithub.com/phpstan/phpstan-src/pull/3166)), thanks [@staabm](https://togithub.com/staabm)! - nette/di - patch for PHP 8.4 support (https://github.com/phpstan/phpstan-src/commit/1245ea73e5a24aefc4fac87ebe73d9720deac7c9) - InternalError is part of `@api` ([#3240](https://togithub.com/phpstan/phpstan-src/pull/3240)), thanks [@janedbal](https://togithub.com/janedbal)! - Refactor RegexArrayShapeMatcher ([#3248](https://togithub.com/phpstan/phpstan-src/pull/3248)), thanks [@staabm](https://togithub.com/staabm)! - Refactor PrintfParametersRule ([#3247](https://togithub.com/phpstan/phpstan-src/pull/3247)), thanks [@staabm](https://togithub.com/staabm)! - Simplify RegularExpressionPatternRule ([#3251](https://togithub.com/phpstan/phpstan-src/pull/3251)), thanks [@staabm](https://togithub.com/staabm)! - Copy regex grammar from hoa/regex into the project (https://github.com/phpstan/phpstan-src/commit/bacb3c6d11edb5f30176e70ade6e72ac4f2e23dd) - Apply Grammar.patch to reflect previous phpstan state (https://github.com/phpstan/phpstan-src/commit/e71cff468aa4695e9bfa09d01e0ec5194890e7f1) - ExecutionEndNode always has a statement (https://github.com/phpstan/phpstan-src/commit/27e0f91efad4c9fcacae98b2e3394c069e9e5095) - Fix PHP_VERSION_ID comparison in test ([#3254](https://togithub.com/phpstan/phpstan-src/pull/3254)), thanks [@staabm](https://togithub.com/staabm)! - Apply the stricter signatures for PHP 8.0 after the basic ones for PHP 8.0 ([#3259](https://togithub.com/phpstan/phpstan-src/pull/3259)), thanks [@thg2k](https://togithub.com/thg2k)! - Refactor function signature map files loading ([#3262](https://togithub.com/phpstan/phpstan-src/pull/3262)), thanks [@thg2k](https://togithub.com/thg2k)! ### [`v1.11.7`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.7) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.6...1.11.7) # Improvements 🔧 - Rework `match` expression analysis with enum with performance in mind (https://github.com/phpstan/phpstan-src/commit/b98abe01ca2a589c964970ea42128ae9b752890b), [#11263](https://togithub.com/phpstan/phpstan/issues/11263) - DiagnoseExtension (https://github.com/phpstan/phpstan-src/commit/d55933fa0c8d6c9d91c5d30f70313e1c15b2c7f9) - This extension can output any diagnostic information to stderr after analysis - PHPStan displays this information when running the "analyse" command with `-vvv` CLI option. - Result cache - debug message about successfully restored cache (https://github.com/phpstan/phpstan-src/commit/979055fceeaefec30c1eded52550012f0c1333b6) - Show a hint about `-vv` for unignorable errors when generating the baseline (https://github.com/phpstan/phpstan-src/commit/d931c8987563fbe5a05e411722a6f53da6f1b555), [#3973](https://togithub.com/phpstan/phpstan/issues/3973) - Limit the depth when resolving closure type for performance reasons (https://github.com/phpstan/phpstan-src/commit/2c08dfa8d0f975654d52fe279a950c54415076b5?w=1), [#11283](https://togithub.com/phpstan/phpstan/issues/11283) - `MutatingScope::resolveType()` - cache closure body analysis data (https://github.com/phpstan/phpstan-src/commit/fd3115652b76278fa6ddf8ba40b41fc751642153), [#11283](https://togithub.com/phpstan/phpstan/issues/11283) # Bugfixes 🐛 - Observe `@no-named-arguments` above class (https://github.com/phpstan/phpstan-src/commit/815270d8933b9cdefa4613f0baf17bcbff91be6f), [#11275](https://togithub.com/phpstan/phpstan/issues/11275) - Fix `count()` narrowing on $matches ([#3210](https://togithub.com/phpstan/phpstan-src/pull/3210)), [#11277](https://togithub.com/phpstan/phpstan/issues/11277), thanks [@staabm](https://togithub.com/staabm)! - Try preventing "Method was not found in reflection of class" when getting a method prototype (https://github.com/phpstan/phpstan-src/commit/25658f64f0bcfe784893104864d92032cce33e96), [#11269](https://togithub.com/phpstan/phpstan/issues/11269), [#11251](https://togithub.com/phpstan/phpstan/issues/11251) - RegexArrayShapeMatcher - support resetting non-capturing groups ([#3212](https://togithub.com/phpstan/phpstan-src/pull/3212)), [#11291](https://togithub.com/phpstan/phpstan/issues/11291), thanks [@staabm](https://togithub.com/staabm)! - Prevent out-of-memory errors while regex array shape inference ([#3213](https://togithub.com/phpstan/phpstan-src/pull/3213)), [#11292](https://togithub.com/phpstan/phpstan/issues/11292), thanks [@staabm](https://togithub.com/staabm)! # Function signature fixes 🤖 - `getimagesize`, `getimagesizefromstring`: zero is a possible value for height and width ([#3207](https://togithub.com/phpstan/phpstan-src/pull/3207)), thanks [@mfruehauf](https://togithub.com/mfruehauf)! # Internals 🔍 - Faster `ObjectType::getEnumCases()` ([#3203](https://togithub.com/phpstan/phpstan-src/pull/3203), [#3204](https://togithub.com/phpstan/phpstan-src/pull/3204)), [#11263](https://togithub.com/phpstan/phpstan/issues/11263), thanks [@staabm](https://togithub.com/staabm)! - Update composer-dependency-analyser to 1.6.0 ([#3205](https://togithub.com/phpstan/phpstan-src/pull/3205)), thanks [@janedbal](https://togithub.com/janedbal)! ### [`v1.11.6`](https://togithub.com/phpstan/phpstan/compare/1.11.5...1.11.6) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.5...1.11.6)symfony/console (symfony/console)
### [`v7.1.3`](https://togithub.com/symfony/console/releases/tag/v7.1.3) [Compare Source](https://togithub.com/symfony/console/compare/v7.1.2...v7.1.3) **Changelog** (https://github.com/symfony/console/compare/v7.1.2...v7.1.3) - bug [symfony/symfony#57815](https://togithub.com/symfony/symfony/issues/57815) \[Console]\[PhpUnitBridge]\[VarDumper] Fix `NO_COLOR` empty value handling (@alexandre-daubois)symfony/finder (symfony/finder)
### [`v7.1.3`](https://togithub.com/symfony/finder/releases/tag/v7.1.3) [Compare Source](https://togithub.com/symfony/finder/compare/v7.1.1...v7.1.3) **Changelog** (https://github.com/symfony/finder/compare/v7.1.2...v7.1.3) - no significant changesConfiguration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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.