phpstan/phpstan
### [`v0.12.78`](https://togithub.com/phpstan/phpstan/releases/0.12.78)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.77...0.12.78)
# Improvements π§
- Remember assigned offset value on general arrays ([phpstan/phpstan-src@`0f64ca7`](https://togithub.com/phpstan/phpstan-src/commit/0f64ca749f5246a2550dd746cb416b37e2e6ef84)), [#2112](https://togithub.com/phpstan/phpstan/issues/2112)
- Result cache optimization ([phpstan/phpstan-src@`67b2d1c`](https://togithub.com/phpstan/phpstan-src/commit/67b2d1cfa5d9bf769cd71cb2d28dd2f9ca86ba2b))
- Result cache - invalidate when scanned file changed ([phpstan/phpstan-src@`7d279fc`](https://togithub.com/phpstan/phpstan-src/commit/7d279fcfe8d9c2bf9066be302209a58c15b9b8bc)), [#3952](https://togithub.com/phpstan/phpstan/issues/3952)
- Result cache - hash autoload file and bootstrap files ([phpstan/phpstan-src@`3457e58`](https://togithub.com/phpstan/phpstan-src/commit/3457e581151d3b639a6ee2837458e678fd38d8c8)), [#3416](https://togithub.com/phpstan/phpstan/issues/3416)
- Parameter of closure passed into `array_map`/`array_filter` can resolve to a subtype of native type ([phpstan/phpstan-src@`bf320b0`](https://togithub.com/phpstan/phpstan-src/commit/bf320b0b2551aeb06934c64edcc2597f740ba401))
# Bugfixes π
- Invalidate `count($array)` after `array_shift()` ([phpstan/phpstan-src@`6b2afbc`](https://togithub.com/phpstan/phpstan-src/commit/6b2afbccceff67232e28c97156f4f4b916fb4c00)), [#4558](https://togithub.com/phpstan/phpstan/issues/4558)
- Fix `@template` name clash from different scopes ([phpstan/phpstan-src@`527269a`](https://togithub.com/phpstan/phpstan-src/commit/527269a28ff58c9ddae6527980540ae4be4be08a)), [#4557](https://togithub.com/phpstan/phpstan/issues/4557), [#3121](https://togithub.com/phpstan/phpstan/issues/3121)
- Symbol discovery - fixed looking for functions returning references ([phpstan/phpstan-src@`ec26a00`](https://togithub.com/phpstan/phpstan-src/commit/ec26a001da805605a9bbbbdfb8e55182ee0ad383)), [#3829](https://togithub.com/phpstan/phpstan/issues/3829)
- First argument of `method_exists()` might remain a string ([phpstan/phpstan-src@`91894ff`](https://togithub.com/phpstan/phpstan-src/commit/91894ff918d4453d2eb1197cb63c995b11bb801a)), [#4573](https://togithub.com/phpstan/phpstan/issues/4573)
- Added many regression tests for already fixed issues ([#2837](https://togithub.com/phpstan/phpstan/issues/2837), [#3096](https://togithub.com/phpstan/phpstan/issues/3096), [#3891](https://togithub.com/phpstan/phpstan/issues/3891), [#3544](https://togithub.com/phpstan/phpstan/issues/3544), [#2675](https://togithub.com/phpstan/phpstan/issues/2675), [#1897](https://togithub.com/phpstan/phpstan/issues/1897), [#1801](https://togithub.com/phpstan/phpstan/issues/1801), [#1711](https://togithub.com/phpstan/phpstan/issues/1711), [#4432](https://togithub.com/phpstan/phpstan/issues/4432), [#2268](https://togithub.com/phpstan/phpstan/issues/2268), [#2298](https://togithub.com/phpstan/phpstan/issues/2298), [#1903](https://togithub.com/phpstan/phpstan/issues/1903), [#2927](https://togithub.com/phpstan/phpstan/issues/2927), [#2434](https://togithub.com/phpstan/phpstan/issues/2434), [#2220](https://togithub.com/phpstan/phpstan/issues/2220), [#1871](https://togithub.com/phpstan/phpstan/issues/1871), [#1707](https://togithub.com/phpstan/phpstan/issues/1707), [#1664](https://togithub.com/phpstan/phpstan/issues/1664), [#1661](https://togithub.com/phpstan/phpstan/issues/1661), [#1656](https://togithub.com/phpstan/phpstan/issues/1656), [#1613](https://togithub.com/phpstan/phpstan/issues/1613), [#2682](https://togithub.com/phpstan/phpstan/issues/2682), [#2689](https://togithub.com/phpstan/phpstan/issues/2689), [#2714](https://togithub.com/phpstan/phpstan/issues/2714), [#2846](https://togithub.com/phpstan/phpstan/issues/2846), [#3309](https://togithub.com/phpstan/phpstan/issues/3309), [#3357](https://togithub.com/phpstan/phpstan/issues/3357), [#3534](https://togithub.com/phpstan/phpstan/issues/3534), [#3608](https://togithub.com/phpstan/phpstan/issues/3608), [#3669](https://togithub.com/phpstan/phpstan/issues/3669), [#3920](https://togithub.com/phpstan/phpstan/issues/3920), [#3261](https://togithub.com/phpstan/phpstan/issues/3261), [#4289](https://togithub.com/phpstan/phpstan/issues/4289), [#2568](https://togithub.com/phpstan/phpstan/issues/2568), [#4209](https://togithub.com/phpstan/phpstan/issues/4209), [#3034](https://togithub.com/phpstan/phpstan/issues/3034), [#3117](https://togithub.com/phpstan/phpstan/issues/3117), [#1971](https://togithub.com/phpstan/phpstan/issues/1971), [#2869](https://togithub.com/phpstan/phpstan/issues/2869), [#3024](https://togithub.com/phpstan/phpstan/issues/3024), [#3134](https://togithub.com/phpstan/phpstan/issues/3134))
# Function signature fixes π€
- Fix accepted types for fputcsv fields parameter ([#451](https://togithub.com/phpstan/phpstan-src/pull/451)), thanks [@DaveLiddament](https://togithub.com/DaveLiddament)!
### [`v0.12.77`](https://togithub.com/phpstan/phpstan/releases/0.12.77)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.76...0.12.77)
# Improvements π§
- Check `continue`/`break` outside of loop and switch (level 0) ([phpstan/phpstan-src@`df5c98d`](https://togithub.com/phpstan/phpstan-src/commit/df5c98d7bc071b5fd46ecde4c4a3886285315133)), [#3588](https://togithub.com/phpstan/phpstan/issues/3588), [#794](https://togithub.com/phpstan/phpstan/issues/794)
# Bugfixes π
- Fix result cache for ever-changing Git commit in `vendor/composer/installed.php` ([phpstan/phpstan-src@`6367eb6`](https://togithub.com/phpstan/phpstan-src/commit/6367eb6d090a48801c0a5c7ec5254339efcb433f)), [#4542](https://togithub.com/phpstan/phpstan/issues/4542)
- Avoid false-positive "Offset does not exist" on `isset()` ([#452](https://togithub.com/phpstan/phpstan-src/pull/452)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Fix function signatures with multiple variants on PHP 8 ([#453](https://togithub.com/phpstan/phpstan-src/pull/453)), [#4538](https://togithub.com/phpstan/phpstan/issues/4538), [#4530](https://togithub.com/phpstan/phpstan/issues/4530)
- CallStaticMethodsRule - fix case with non-object class-string ([phpstan/phpstan-src@`ec2ef2a`](https://togithub.com/phpstan/phpstan-src/commit/ec2ef2af56f20ed51155a91e897c4598443bc7b6)), [#4550](https://togithub.com/phpstan/phpstan/issues/4550)
- Fixed inferring from nested generic `class-string` ([phpstan/phpstan-src@`a7a46b1`](https://togithub.com/phpstan/phpstan-src/commit/a7a46b11ce41debc24bfb7d223e6331276abf4ab)), [#4552](https://togithub.com/phpstan/phpstan/issues/4552), [#4249](https://togithub.com/phpstan/phpstan/issues/4249)
# Function signature fixes π€
- Fixed return type of `simplexml_import_dom` ([phpstan/phpstan-src@`270d507`](https://togithub.com/phpstan/phpstan-src/commit/270d507b821b95922140b9e0559cfe515e4ea58f)), [#4536](https://togithub.com/phpstan/phpstan/issues/4536)
- `Redis::auth()` method also accepts array ([#449](https://togithub.com/phpstan/phpstan-src/pull/449)), thanks [@mvorisek](https://togithub.com/mvorisek)!
- `proc_get_status()` - array shape for PHP 8 ([phpstan/phpstan-src@`f9c5714`](https://togithub.com/phpstan/phpstan-src/commit/f9c571415cfffd0c8c932bd2dd258151cd4670bc))
### [`v0.12.76`](https://togithub.com/phpstan/phpstan/releases/0.12.76)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.75...0.12.76)
# Bugfixes π
- Support for `break X` and `continue X` ([phpstan/phpstan-src@`31fcad6`](https://togithub.com/phpstan/phpstan-src/commit/31fcad649cce93f4ad20fa72136a3134fbbeb9f1)), [#4535](https://togithub.com/phpstan/phpstan/issues/4535), [#4346](https://togithub.com/phpstan/phpstan/issues/4346), [#2913](https://togithub.com/phpstan/phpstan/issues/2913), [#2926](https://togithub.com/phpstan/phpstan/issues/2926), [#2549](https://togithub.com/phpstan/phpstan/issues/2549), [#2003](https://togithub.com/phpstan/phpstan/issues/2003), [#1945](https://togithub.com/phpstan/phpstan/issues/1945), [#651](https://togithub.com/phpstan/phpstan/issues/651), [#1283](https://togithub.com/phpstan/phpstan/issues/1283)
- Fixed nullsafe operator with null coalesce ([phpstan/phpstan-src@`990ba51`](https://togithub.com/phpstan/phpstan-src/commit/990ba51cb38f29b17579c54c1967223fcc56661a)), [#4527](https://togithub.com/phpstan/phpstan/issues/4527)
### [`v0.12.75`](https://togithub.com/phpstan/phpstan/releases/0.12.75)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.74...0.12.75)
# Improvements π§
- StubValidator - do not check missing callable signatures ([phpstan/phpstan-src@`b7d6080`](https://togithub.com/phpstan/phpstan-src/commit/b7d60809dd3c1fed00dde616df6c6946c7da118d))
# Bleeding edge πͺ
- Detect wrong usage of `@var` PHPDoc tag (level 2) ([phpstan/phpstan-src@`5886053`](https://togithub.com/phpstan/phpstan-src/commit/58860536dcc60bfc86c29ad67711ed1b19046cb0))
- Check array deconstruction (level 3) ([phpstan/phpstan-src@`aae34d9`](https://togithub.com/phpstan/phpstan-src/commit/aae34d935081a8f8d34f5bd9bdf50ebdfdb85a7e)), [#3267](https://togithub.com/phpstan/phpstan/issues/3267)
_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._
# Bugfixes π
- PHP 8 - fix signatures with multiple variants ([phpstan/phpstan-src@`8633000`](https://togithub.com/phpstan/phpstan-src/commit/8633000546eb2005387774f1a76db5f5686cf084)), [#4514](https://togithub.com/phpstan/phpstan/issues/4514)
- Fixed local ignoring using annotations in traits ([phpstan/phpstan-src@`785b663`](https://togithub.com/phpstan/phpstan-src/commit/785b66311ed7591710b189322c7d71fcfa1c3409)), [#4513](https://togithub.com/phpstan/phpstan/issues/4513)
- Updated PHP 8 stubs ([phpstan/phpstan-src@`cc9a674`](https://togithub.com/phpstan/phpstan-src/commit/cc9a674016c2ec580343db6185621f1d607aca97)), [#4519](https://togithub.com/phpstan/phpstan/issues/4519)
- `SplObjectStorage`'s ArrayAccess will never return null ([phpstan/phpstan-src@`6062437`](https://togithub.com/phpstan/phpstan-src/commit/60624379b08831444b326f5eb688d5db87937964)), [#4436](https://togithub.com/phpstan/phpstan/issues/4436)
- Resolve unknown generic type to bound instead of ErrorType ([phpstan/phpstan-src@`6ef87d1`](https://togithub.com/phpstan/phpstan-src/commit/6ef87d1d1f1065fd980aa01ccda70cb6280f32dc))
- Fixed assigning generic object without a constructor (like `SplObjectStorage`) to a property ([phpstan/phpstan-src@`2017318`](https://togithub.com/phpstan/phpstan-src/commit/2017318c316861d6d6ec3d5c0f1a598e04767f96)), [#3777](https://togithub.com/phpstan/phpstan/issues/3777)
# Function signature fixes π€
- Avoid false positive for namespaced Xpath ([#447](https://togithub.com/phpstan/phpstan-src/pull/447)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
### [`v0.12.74`](https://togithub.com/phpstan/phpstan/releases/0.12.74)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.73...0.12.74)
# Improvements π§
- Resolve `StaticType` coming from dynamic return type extensions ([phpstan/phpstan-src@`76b65b4`](https://togithub.com/phpstan/phpstan-src/commit/76b65b4a767b47af62f4da2c52bcbba0961b6eae))
# Bugfixes π
- WrongVariableNameInVarTagRule - fix iteratee variable above foreach ([phpstan/phpstan-src@`3d365fc`](https://togithub.com/phpstan/phpstan-src/commit/3d365fc7af8833656b6e58c1b37d3a8b17079173)), [#4504](https://togithub.com/phpstan/phpstan/issues/4504)
- Fix undefined variable in `@var` in unreachable code ([phpstan/phpstan-src@`ec4e7ed`](https://togithub.com/phpstan/phpstan-src/commit/ec4e7edfe622c24a5e037d3a088ed8175275737e)), [#4505](https://togithub.com/phpstan/phpstan/issues/4505)
### [`v0.12.73`](https://togithub.com/phpstan/phpstan/releases/0.12.73)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.72...0.12.73)
# Improvements π§
- Support `@var` above global keyword ([phpstan/phpstan-src@`fa5f8ec`](https://togithub.com/phpstan/phpstan-src/commit/fa5f8ec4a3b487db5ddf233063d75f2ab9d53173)), [#4500](https://togithub.com/phpstan/phpstan/issues/4500)
- Rework processing inline `@var` ([phpstan/phpstan-src@`e501091`](https://togithub.com/phpstan/phpstan-src/commit/e5010911e991f0736477f5ed256205def9a6dc06))
### [`v0.12.72`](https://togithub.com/phpstan/phpstan/releases/0.12.72)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.71...0.12.72)
# Improvements π§
- Tip linking to [blogpost about solving "no value type specified in iterable type" error](https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-iterable-type) ([phpstan/phpstan-src@`d0a35b5`](https://togithub.com/phpstan/phpstan-src/commit/d0a35b5d183f1c26a96ea0699c04d6c8fa494d5c))
- Do not report "Unable to resolve template type" when the type is not present in parameters ([phpstan/phpstan-src@`cec9ef6`](https://togithub.com/phpstan/phpstan-src/commit/cec9ef6b6d9771e37a8550a40666da0139e7ecb7))
- WrongVariableNameInVarTagRule - report for all statement types ([phpstan/phpstan-src@`0e84414`](https://togithub.com/phpstan/phpstan-src/commit/0e8441471ee5454f5fa7c5c7b807ba4046431ed7))
- InvalidPhpDocVarTagTypeRule - report for all PHPDocs containing `@var` ([phpstan/phpstan-src@`a5a9a4d`](https://togithub.com/phpstan/phpstan-src/commit/a5a9a4dea44f515e67f367c4fd01b7ac9c625cb8))
# Bleeding edge πͺ
- Check that function-scoped template type is in a parameter ([phpstan/phpstan-src@`18bdd34`](https://togithub.com/phpstan/phpstan-src/commit/18bdd34a808763764ea281d4f1b62fc0e7968873))
_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._
# Bugfixes π
- Fix resolving types in `@var` above `use` statement ([phpstan/phpstan-src@`4fff79c`](https://togithub.com/phpstan/phpstan-src/commit/4fff79c64f4d7aaca3231f68f0ebc8853ddd16f9)), [#4486](https://togithub.com/phpstan/phpstan/issues/4486)
- Fix resolving types in `@var` above `namespace` statement ([phpstan/phpstan-src@`26fb6dd`](https://togithub.com/phpstan/phpstan-src/commit/26fb6dda9f919caf82b8491617390457d594985d))
- Result cache - invalidate after running `composer install` ([phpstan/phpstan-src@`f11c0f0`](https://togithub.com/phpstan/phpstan-src/commit/f11c0f0922bc7a6c52c079a2bf3b9f04e22115cf)), [#4495](https://togithub.com/phpstan/phpstan/issues/4495)
### [`v0.12.71`](https://togithub.com/phpstan/phpstan/releases/0.12.71)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.70...0.12.71)
# Improvements π§
- Performance optimizations ([phpstan/phpstan-src@`ca7e9ef`](https://togithub.com/phpstan/phpstan-src/commit/ca7e9ef41c467567a502765303034552e9b4c385), [phpstan/phpstan-src@`369cc18`](https://togithub.com/phpstan/phpstan-src/commit/369cc186b6274a390a398ca74a2de6d715a8a47c), [ondrejmirtes/BetterReflection@`fb85182`](https://togithub.com/ondrejmirtes/BetterReflection/commit/fb85182b78f43a8e66a6d0b50e7a243c5d45d5cb))
- Dynamic return type extension for understanding `compact()` function ([phpstan/phpstan-src@`2a75a25`](https://togithub.com/phpstan/phpstan-src/commit/2a75a25431485af4134468f1ef013d2c5dab6a13))
- Improve `CompactVariablesRule` - recognize array parameters ([phpstan/phpstan-src@`f2dd33a`](https://togithub.com/phpstan/phpstan-src/commit/f2dd33a09afa5d3619b1c7db9f7c486e60ba0353))
# Bugfixes π
- Do not report calls to pure methods/functions with `@return never` on a separate line ([phpstan/phpstan-src@`136db04`](https://togithub.com/phpstan/phpstan-src/commit/136db047e3d37744ab1b5a04aef16d7406078284)), [#4455](https://togithub.com/phpstan/phpstan/issues/4455)
- Infer `never` return type in closure only with missing or `void` native return typehint ([phpstan/phpstan-src@`809807a`](https://togithub.com/phpstan/phpstan-src/commit/809807af5a8c6685c9220f83a12b6c7cbae3bf53)), [#4442](https://togithub.com/phpstan/phpstan/issues/4442)
- Fix CachedParser returning stale cache when asked for richer AST through parseFile ([phpstan/phpstan-src@`bef5a26`](https://togithub.com/phpstan/phpstan-src/commit/bef5a261f3a0a038ad782d1f4dd8f7d85daf7d87))
- Do not complain about interface and abstract class when instantiating from object ([phpstan/phpstan-src@`5ad91d2`](https://togithub.com/phpstan/phpstan-src/commit/5ad91d26e2f411505e932ecdc5a412d797c2b817)), [#4471](https://togithub.com/phpstan/phpstan/issues/4471)
- Fixed `CallableType::getReferencedClasses()` ([phpstan/phpstan-src@`09da0a3`](https://togithub.com/phpstan/phpstan-src/commit/09da0a3af061425c959779aa6ebfb1330554a35f))
# Function signature fixes π€
- Fix `MemcachePool::get` declaration (return types) ([#434](https://togithub.com/phpstan/phpstan-src/pull/434)), thanks [@fizzka](https://togithub.com/fizzka)!
- Update Imagick functionMap ([#435](https://togithub.com/phpstan/phpstan-src/pull/435)), thanks [@davidlienhard](https://togithub.com/davidlienhard)!
### [`v0.12.70`](https://togithub.com/phpstan/phpstan/releases/0.12.70)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.69...0.12.70)
# Improvements π§
- `phpstan.phar` is built with Composer v2, solves `OutOfBoundsException: Package "project/project" is not installed` error ([getsentry/sentry-symfony#383](https://togithub.com/getsentry/sentry-symfony/issues/383)) thanks to [composer/composer#9635](https://togithub.com/composer/composer/pull/9635)
- Optimization for currently analysed class reflection when there's only one occurrence of the same class in a project ([phpstan/phpstan-src@`d3435dd`](https://togithub.com/phpstan/phpstan-src/commit/d3435dd97b19dac72efb54c06e13eb37d9348177)), [#4435](https://togithub.com/phpstan/phpstan/issues/4435)
# Bugfixes π
- "Unable to resolve template type" has to check against explicit NeverType only ([phpstan/phpstan-src@`ba4bc4f`](https://togithub.com/phpstan/phpstan-src/commit/ba4bc4f7316a58aaf2d75be606c7b0d90aad136c)), [#4422](https://togithub.com/phpstan/phpstan/issues/4422)
- Update phpstorm-stubs ([phpstan/phpstan-src@`6bbd629`](https://togithub.com/phpstan/phpstan-src/commit/6bbd6290c9987267c9ceebec4bace314549a7b73))
- Fix link in "internal error" message ([phpstan/phpstan-src@`a2ce51b`](https://togithub.com/phpstan/phpstan-src/commit/a2ce51b4ec1062f97362935bd6737571f7bf7b2f))
# Function signature fixes π€
- Add SimpleXmlElementXpathMethodReturnTypeExtension ([#428](https://togithub.com/phpstan/phpstan-src/pull/428)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Allow lowercase variant of constant for `setcookie()` ([#431](https://togithub.com/phpstan/phpstan-src/pull/431)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
### [`v0.12.69`](https://togithub.com/phpstan/phpstan/releases/0.12.69)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.68...0.12.69)
# Improvements π§
- The PHAR is present only once in [`phpstan/phpstan`](https://togithub.com/phpstan/phpstan) distribution ([#4390](https://togithub.com/phpstan/phpstan/pull/4390)), thanks [@mvorisek](https://togithub.com/mvorisek)!
- ComposerJsonAndInstalledJsonSourceLocatorMaker - optimized memory consumption for many autoloaded files ([phpstan/phpstan-src@`e4b6ffd`](https://togithub.com/phpstan/phpstan-src/commit/e4b6ffdcb692c1113c0f8505849535f016bfe379)), [#4401](https://togithub.com/phpstan/phpstan/issues/4401)
- Optimized caching of `isSuperTypeOf()` in `ObjectType` ([phpstan/phpstan-src@`e88491b`](https://togithub.com/phpstan/phpstan-src/commit/e88491bb8507c417559343b5e4d51c1fe59b56c5))
- Unification for working with current class reflection (like `self::`) across CallStaticMethodsRule, ClassConstantRule, AccessStaticPropertiesRule ([phpstan/phpstan-src@`863e6c6`](https://togithub.com/phpstan/phpstan-src/commit/863e6c600a40177a20e8677cd05eca077e2b184b)), [composer/composer#9635](https://togithub.com/composer/composer/pull/9635)
- New feature - require specifying `callable` signatures in PHPDocs: turn on with `checkMissingCallableSignature` parameter (off by default) ([phpstan/phpstan-src#430](https://togithub.com/phpstan/phpstan-src/pull/430)), thanks [@dktapps](https://togithub.com/dktapps)!
# Bugfixes π
- Fixed preserving non-empty array in `array_reverse()` ([phpstan/phpstan-src@`3ccc152`](https://togithub.com/phpstan/phpstan-src/commit/3ccc152efda55793f8efc2e0b97fa720f51d6e31)), [#4398](https://togithub.com/phpstan/phpstan/issues/4398)
- OPENSSL_VERSION_NUMBER is a dynamic constant name ([phpstan/phpstan-src@`c865bc3`](https://togithub.com/phpstan/phpstan-src/commit/c865bc3f9b245fc45d5386327456c496b53e2833))
- IteratorAggregate - read key and value type from generics if `getIterator()` doesn't have PHPDoc type ([phpstan/phpstan-src@`c75b0ea`](https://togithub.com/phpstan/phpstan-src/commit/c75b0ea678f89369b703f520f7d801afb0a31d5f)),
- Inline `@var` above property should not pollute scope inside methods ([phpstan/phpstan-src@`e832df4`](https://togithub.com/phpstan/phpstan-src/commit/e832df4e9912e2a0616922f508290dafefcf73a0)), [#4412](https://togithub.com/phpstan/phpstan/issues/4412)
- Infer return type `never` from closure ([phpstan/phpstan-src@`98c8dd6`](https://togithub.com/phpstan/phpstan-src/commit/98c8dd6b72502d606c36e7a91e78e77e13db23f4)), [#4416](https://togithub.com/phpstan/phpstan/issues/4416)
- Fix excluding files when excludePaths.analyse and excludePaths.analyseAndScan are used at the same time ([phpstan/phpstan-src@`09e4fbe`](https://togithub.com/phpstan/phpstan-src/commit/09e4fbec99e04e6dad54873fbba22b3e18f27c1e)), [#4417](https://togithub.com/phpstan/phpstan/issues/4417)
- VoidType::accepts - support CompoundType ([phpstan/phpstan-src@`8b4cab5`](https://togithub.com/phpstan/phpstan-src/commit/8b4cab5ed0e3922ac359e2de5d8091382694a51a))
# Function signature fixes π€
- Remove incorrect overrides in PHP8 for `proc_get_status()` ([#429](https://togithub.com/phpstan/phpstan-src/pull/429)), thanks [@Firehed](https://togithub.com/Firehed)!
### [`v0.12.68`](https://togithub.com/phpstan/phpstan/releases/0.12.68)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.67...0.12.68)
# Improvements π§
- Infer return type of anonymous functions from the return statements ([phpstan/phpstan-src@`96750b5`](https://togithub.com/phpstan/phpstan-src/commit/96750b5acdc17b959ed08f8d0278cf5720c82113)), [#3115](https://togithub.com/phpstan/phpstan/issues/3115), [#3091](https://togithub.com/phpstan/phpstan/issues/3091), [#2576](https://togithub.com/phpstan/phpstan/issues/2576)
# Bugfixes π
- Fix ClosureReturnStatementsNode to not contain statements from nested closures and anonymous functions ([phpstan/phpstan-src@`a81a8c3`](https://togithub.com/phpstan/phpstan-src/commit/a81a8c3870b119ee15accfb549caa5f9c163d8c5))
- Fix FunctionReturnStatementsNode to not contain statements from nested closures and anonymous functions ([phpstan/phpstan-src@`c70325b`](https://togithub.com/phpstan/phpstan-src/commit/c70325b4a48039ac84deb457417fc14d0bb97eaf))
- Fix MethodReturnStatementsNode to not contain statements from nested closures and anonymous functions ([phpstan/phpstan-src@`9a99aa5`](https://togithub.com/phpstan/phpstan-src/commit/9a99aa5472a8a757b10c8ce32e275f304aeed85c))
### [`v0.12.67`](https://togithub.com/phpstan/phpstan/releases/0.12.67)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.66...0.12.67)
# Improvements π§
- Reworked `@var` support so that view files can be analysed successfully ([phpstan/phpstan-src@`22d363c`](https://togithub.com/phpstan/phpstan-src/commit/22d363cdb9f01a87ad354ae049434b6f8acbc2fa), [phpstan/phpstan-src@`27481c3`](https://togithub.com/phpstan/phpstan-src/commit/27481c3c3615d10919c0d55248cac31f2abde8b6)), [#4155](https://togithub.com/phpstan/phpstan/issues/4155), [#3516](https://togithub.com/phpstan/phpstan/issues/3516), [#3515](https://togithub.com/phpstan/phpstan/issues/3515), [#351](https://togithub.com/phpstan/phpstan/issues/351)
- Report only relevant "unable to resolve template type" message ([phpstan/phpstan-src@`a5f9f0c`](https://togithub.com/phpstan/phpstan-src/commit/a5f9f0c26d9112e5add6d74758b0f7388a141da0)), [#3853](https://togithub.com/phpstan/phpstan/issues/3853)
- Unable to resolve the template type - tip with a blogpost link ([phpstan/phpstan-src@`3c56362`](https://togithub.com/phpstan/phpstan-src/commit/3c56362f74ec7ee2b2ba8d4d95933b8cee98504b))
- NewStaticRule - tip with a blogpost link ([phpstan/phpstan-src@`96f1e10`](https://togithub.com/phpstan/phpstan-src/commit/96f1e106bd10f754b304d874493df14613529607))
- Deprecated `PHPStan\Reflection\Generic\ResolvedFunctionVariant` in favor of `PHPStan\Reflection\ResolvedFunctionVariant` ([phpstan/phpstan-src@`959b6e9`](https://togithub.com/phpstan/phpstan-src/commit/959b6e9ab3d394583236ef9330244937933027ad))
# Bugfixes π
- Fixed skipping shadowed trait method by a native method ([phpstan/phpstan-src@`2de6a24`](https://togithub.com/phpstan/phpstan-src/commit/2de6a241caf3bd78c3c15075b7e255ccfdb62377)), [#4214](https://togithub.com/phpstan/phpstan/issues/4214)
- `parent::__construct()` resets `$this` state ([phpstan/phpstan-src@`c8174d5`](https://togithub.com/phpstan/phpstan-src/commit/c8174d59ccc9865ff38560651a5bfc30827fb798)), [#4351](https://togithub.com/phpstan/phpstan/issues/4351)
- Smoother parallel process quitting when the child process crashes ([phpstan/phpstan-src@`cbbbd36`](https://togithub.com/phpstan/phpstan-src/commit/cbbbd36189c564930937d9dfc02ba4fc7bd39a6b)), [phpstan/phpstan-doctrine#169](https://togithub.com/phpstan/phpstan-doctrine/issues/169)
### [`v0.12.66`](https://togithub.com/phpstan/phpstan/releases/0.12.66)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.65...0.12.66)
# Improvements π§
- Support `@pure` and `@phpstan-pure` annotations ([#412](https://togithub.com/phpstan/phpstan-src/pull/412)), thanks [@b1rdex](https://togithub.com/b1rdex)!
- Support `@impure` and `@phpstan-impure` ([#412](https://togithub.com/phpstan/phpstan-src/pull/412))
- It closes these issues: [#3746](https://togithub.com/phpstan/phpstan/issues/3746), [#3844](https://togithub.com/phpstan/phpstan/issues/3844), [#4301](https://togithub.com/phpstan/phpstan/issues/4301), [#2105](https://togithub.com/phpstan/phpstan/issues/2105), [#929](https://togithub.com/phpstan/phpstan/issues/929), [#1826](https://togithub.com/phpstan/phpstan/issues/1826)
# Bleeding edge πͺ
- Detect stub file added multiple times ([phpstan/phpstan-src@`4a82eec`](https://togithub.com/phpstan/phpstan-src/commit/4a82eec4044e900be192096d58f04b4e2be80a0a))
- BooleanAndConstantConditionRule - check LogicalAnd ([phpstan/phpstan-src@`40a76e8`](https://togithub.com/phpstan/phpstan-src/commit/40a76e88d0866f7d541e0e43364de07c5a94c465))
- BooleanOrConstantConditionRule - check LogicalOr ([phpstan/phpstan-src@`ae9a558`](https://togithub.com/phpstan/phpstan-src/commit/ae9a558484dc4f330873e962b8dc1b2d18f0c9b7))
_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._
# Bugfixes π
- Fix return type of arrow function ([phpstan/phpstan-src@`e9b783a`](https://togithub.com/phpstan/phpstan-src/commit/e9b783a5e427dcd058ea72f07cb1ce44b8ee8ba7)), [#4339](https://togithub.com/phpstan/phpstan/issues/4339)
- Apply conditional expressions for non-empty arrays inside foreach ([phpstan/phpstan-src@`35db779`](https://togithub.com/phpstan/phpstan-src/commit/35db779fac3363f3f083ccf04d441e88ba0bd3ac)), [#4343](https://togithub.com/phpstan/phpstan/issues/4343)
# Function signature fixes π€
- Updated return values for `zip_open()` ([#419](https://togithub.com/phpstan/phpstan-src/pull/419)), [#4341](https://togithub.com/phpstan/phpstan/issues/4341), thanks [@spud](https://togithub.com/spud)!
- Updated PHP 8 stubs ([phpstan/phpstan-src@`d586b93`](https://togithub.com/phpstan/phpstan-src/commit/d586b939265af336cfec3ec4d712a41146a46322))
- Improved `setcookie()` and `setrawcookie()` signatures ([phpstan/phpstan-src@`ccb1d4d`](https://togithub.com/phpstan/phpstan-src/commit/ccb1d4d4141b23ba87c1762294f54da219d930b1)), [#4348](https://togithub.com/phpstan/phpstan/issues/4348)
- `array_combine()` dynamicExtension ([#418](https://togithub.com/phpstan/phpstan-src/pull/418)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- `array_rand()` return type extension ([#417](https://togithub.com/phpstan/phpstan-src/pull/417)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Update `ctype_*` function signature ([#421](https://togithub.com/phpstan/phpstan-src/pull/421)), thanks [@BackEndTea](https://togithub.com/BackEndTea)!
### [`v0.12.65`](https://togithub.com/phpstan/phpstan/releases/0.12.65)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.64...0.12.65)
# Improvements π§
- New option `excludePaths` that replaces `excludes_analyse` and allows for more granular settings - different exclusions for analysed paths and discovering symbols in 3rd party code ([phpstan/phpstan-src@`bf35a10`](https://togithub.com/phpstan/phpstan-src/commit/bf35a1045883bc88a9820e5680c66c98314ff33f)) - [#3749](https://togithub.com/phpstan/phpstan/issues/3749), [#1796](https://togithub.com/phpstan/phpstan/issues/1796). [Read more about it in this comment](https://togithub.com/phpstan/phpstan/issues/3749#issuecomment-754749316).
- Clear cache directory - delete old containers ([phpstan/phpstan-src@`db0a5f6`](https://togithub.com/phpstan/phpstan-src/commit/db0a5f61a436b337d11cfb2b4258336bcfab4fff)), [#4328](https://togithub.com/phpstan/phpstan/issues/4328)
# Bugfixes π
- Generics - do not generalize array shape ([phpstan/phpstan-src@`94e3443`](https://togithub.com/phpstan/phpstan-src/commit/94e3443b2d21404a821e05b901dd4b57fcbd4e7f))
- Arrow functions - allow more precise return type even when native return type is present ([phpstan/phpstan-src@`3d0ac6f`](https://togithub.com/phpstan/phpstan-src/commit/3d0ac6f15e4477480295331f72631067e6bc99c0)), [#4275](https://togithub.com/phpstan/phpstan/issues/4275)
- `array_filter` w/ arrow functions return type extension ([#402](https://togithub.com/phpstan/phpstan-src/pull/402)), thanks [@b1rdex](https://togithub.com/b1rdex)!
- Make IntegerRangeType represent open intervals properly ([#409](https://togithub.com/phpstan/phpstan-src/pull/409)), [#577](https://togithub.com/phpstan/phpstan/issues/577), thanks [@jlherren](https://togithub.com/jlherren)!
- Improve specified type in comparisons ([#390](https://togithub.com/phpstan/phpstan-src/pull/390)), thanks [@jlherren](https://togithub.com/jlherren)!
- Register missing SplObjectStorage stub ([phpstan/phpstan-src@`143741c`](https://togithub.com/phpstan/phpstan-src/commit/143741c9c68edcc96845926b551d40eeed2af0d5))
- Solve issues with arrow functions containing void expression ([phpstan/phpstan-src@`7ac6383`](https://togithub.com/phpstan/phpstan-src/commit/7ac6383557b414d8b319d28eb23681abf16a668c)), [#4292](https://togithub.com/phpstan/phpstan/issues/4292), [#3348](https://togithub.com/phpstan/phpstan/issues/3348)
- Fix `isset()` bug ([phpstan/phpstan-src@`3d6461c`](https://togithub.com/phpstan/phpstan-src/commit/3d6461c33382c7d4b1225a6bbfb6d4b947f6be4c)), [#4290](https://togithub.com/phpstan/phpstan/issues/4290)
- Fix infinite recursion with `count()` calls in TypeSpecifier ([phpstan/phpstan-src@`69e68a7`](https://togithub.com/phpstan/phpstan-src/commit/69e68a7a150d975139767ce508ecc42dfb8e3e26)), [#4300](https://togithub.com/phpstan/phpstan/issues/4300)
# Function signature fixes π€
- Fix function signatures for `preg_replace_callback*` for PHP 7.4+ ([#411](https://togithub.com/phpstan/phpstan-src/pull/411)), thanks [@jabrandes](https://togithub.com/jabrandes)!
- Sync array_unique parameter names with PHP 8 ([phpstan/phpstan-src@`9e7bdf7`](https://togithub.com/phpstan/phpstan-src/commit/9e7bdf7c5056f66a5b344a12f1e26d58c2c5d0c1))
### [`v0.12.64`](https://togithub.com/phpstan/phpstan/releases/0.12.64)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.63...0.12.64)
# Major new feature π
**Dependent variables**
PHPStan can now understand relationships between different variables. Cases like these are now understood correctly:
```php
if ($debug) {
$foo = 'bar';
}
if ($debug) {
// previously: Variable $foo might not be defined.
// now: no error
echo $foo;
}
```
Additionally, this feature fixes all these issues: [#801](https://togithub.com/phpstan/phpstan/issues/801), [#806](https://togithub.com/phpstan/phpstan/issues/806), [#1209](https://togithub.com/phpstan/phpstan/issues/1209), [#1306](https://togithub.com/phpstan/phpstan/issues/1306), [#1722](https://togithub.com/phpstan/phpstan/issues/1722), [#1865](https://togithub.com/phpstan/phpstan/issues/1865), [#2980](https://togithub.com/phpstan/phpstan/issues/2980), [#3371](https://togithub.com/phpstan/phpstan/issues/3371), [#3986](https://togithub.com/phpstan/phpstan/issues/3986)
# Bugfixes π
- Implement property name as an expression in `TypesAssignedToPropertiesRule` ([phpstan/phpstan-src@`7458d1e`](https://togithub.com/phpstan/phpstan-src/commit/7458d1e09c00a70ce00453db07f4e2412db599f3))
- Updated `nikic/php-parser` ([phpstan/phpstan-src@`19bf582`](https://togithub.com/phpstan/phpstan-src/commit/19bf582aa3c0e0809446a17399d17d17ab40297c)), [#4194](https://togithub.com/phpstan/phpstan/issues/4194)
# Function signature fixes π€
- Changing return type of `Collator::compare` to `int|false` ([#410](https://togithub.com/phpstan/phpstan-src/pull/410)), thanks [@vasekbrychta](https://togithub.com/vasekbrychta)!
- Update PHP 8 stubs ([phpstan/phpstan-src@`4430549`](https://togithub.com/phpstan/phpstan-src/commit/44305499fe9b4aca8943c8e15382581372f6bd45)), [#4268](https://togithub.com/phpstan/phpstan/issues/4268)
### [`v0.12.63`](https://togithub.com/phpstan/phpstan/releases/0.12.63)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.62...0.12.63)
# Bugfixes π
- Methods and functions marked as `#[Pure]` but having `@throws` are considered to have side effects ([phpstan/phpstan-src@`7537f81`](https://togithub.com/phpstan/phpstan-src/commit/7537f81d6ce37bd90b3aef0d3c329071faf0acee)), [#4232](https://togithub.com/phpstan/phpstan/issues/4232)
- Do not infer property types from constructor if the property already has a native type ([phpstan/phpstan-src@`d245dab`](https://togithub.com/phpstan/phpstan-src/commit/d245daba79551b493a6e4925768f61f76894b4d1)), [#4234](https://togithub.com/phpstan/phpstan/issues/4234)
- Fix false positive with nullsafe operator ([phpstan/phpstan-src@`75d00c9`](https://togithub.com/phpstan/phpstan-src/commit/75d00c9a0fb25a84c4656055cc1769123ec06e01)), [#4199](https://togithub.com/phpstan/phpstan/issues/4199)
- Php8SignatureMapProvider - prefer functionMap return type if PHP 8 stub file has only PHPDoc ([phpstan/phpstan-src@`893813c`](https://togithub.com/phpstan/phpstan-src/commit/893813ce0f6b81455053bde54f286245d5d99e10)), [#4205](https://togithub.com/phpstan/phpstan/issues/4205)
# Function signature fixes π€
- Update functionMap with functions that return false on both PHP 7 and PHP 8 ([phpstan/phpstan-src@`43e5399`](https://togithub.com/phpstan/phpstan-src/commit/43e53990703f7c0b0d2ff0249570ac7ed1beed97))
### [`v0.12.62`](https://togithub.com/phpstan/phpstan/releases/0.12.62)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.61...0.12.62)
Support relative paths in extension-installer ([phpstan/phpstan-src@`0e306c6`](https://togithub.com/phpstan/phpstan-src/commit/0e306c66ca4c6f31184e222ce5df04a17b4307ca)), [phpstan/extension-installer#17](https://togithub.com/phpstan/extension-installer/issues/17)
Starting with `phpstan/phpstan` 0.12.62 and `phpstan/extension-installer` 1.1.0, relative paths to extension configs are used. This allows the generated config to be moved across filesystems, for example from a host system to a Docker container.
### [`v0.12.61`](https://togithub.com/phpstan/phpstan/releases/0.12.61)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.60...0.12.61)
# Bugfixes π
- Inferred property type for missing assigned property should not be set to implicit mixed ([phpstan/phpstan-src@`5b89088`](https://togithub.com/phpstan/phpstan-src/commit/5b89088469042b3599d67961e7a833f9838abfad)), [#4227](https://togithub.com/phpstan/phpstan/issues/4227)
# Function signature fixes π€
- Fix wrong function signature of `posix_getpwuid` and `posix_getgrgid` ([#408](https://togithub.com/phpstan/phpstan-src/pull/408)), thanks [@aragon999](https://togithub.com/aragon999)!
### [`v0.12.60`](https://togithub.com/phpstan/phpstan/releases/0.12.60)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.59...0.12.60)
# Improvements π§
- Infer private properties in constructor, even if typehinted ([#374](https://togithub.com/phpstan/phpstan-src/pull/374)), thanks [@Baldinof](https://togithub.com/Baldinof)!
- Updated nikic/php-parser ([phpstan/phpstan-src@`030b4f5`](https://togithub.com/phpstan/phpstan-src/commit/030b4f53f2faa05434fc9847c07a3e5555a80393))
- Optimize range() dynamic return type extension for big arrays ([phpstan/phpstan-src@`af5ba63`](https://togithub.com/phpstan/phpstan-src/commit/af5ba63fcf3699424c06b813be8369b447dc924f)), [#4207](https://togithub.com/phpstan/phpstan/issues/4207)
- Obsolete Docker image note ([phpstan/phpstan-src@`80d8afb`](https://togithub.com/phpstan/phpstan-src/commit/80d8afb45020cae3f0f825a9e2bc37d0810f776e))
# Bugfixes π
- Delete result cache file when it fails to load ([phpstan/phpstan-src@`c22e620`](https://togithub.com/phpstan/phpstan-src/commit/c22e62052c0ceb9ab0b29213d94b7ca26a601f0f)), [#4200](https://togithub.com/phpstan/phpstan/issues/4200)
- Match expression - fix default handling ([phpstan/phpstan-src@`1dfade1`](https://togithub.com/phpstan/phpstan-src/commit/1dfade1440a36395b775a6bb21ee3b67ac19ca02)), [#4204](https://togithub.com/phpstan/phpstan/issues/4204)
- TypeSpecifier - resolve values from fetched constants ([phpstan/phpstan-src@`761c962`](https://togithub.com/phpstan/phpstan-src/commit/761c9623a2e24e5957aa8c8e8d0ac707d59bc128)), [#4206](https://togithub.com/phpstan/phpstan/issues/4206)
- Fix bug when specifying empty array ([phpstan/phpstan-src@`a73b48f`](https://togithub.com/phpstan/phpstan-src/commit/a73b48f41103c2a47dab03927bee5302285c0f2e))
# Function signature fixes π€
- Fix Normalizer's normalize method can return false ([#403](https://togithub.com/phpstan/phpstan-src/pull/403)), thanks [@TRowbotham](https://togithub.com/TRowbotham)!
- Fix wrong function signature of get_include_path() ([#404](https://togithub.com/phpstan/phpstan-src/pull/404)), thanks [@ste93cry](https://togithub.com/ste93cry)!
- functionMap: getmypid() / getmyuid() may return false ([#406](https://togithub.com/phpstan/phpstan-src/pull/406)), thanks [@dktapps](https://togithub.com/dktapps)!
- functionMap: unpack() may return false ([#405](https://togithub.com/phpstan/phpstan-src/pull/405)), thanks [@dktapps](https://togithub.com/dktapps)!
- Handle encoding for mb_str_split returnTypeExtension ([#396](https://togithub.com/phpstan/phpstan-src/pull/396)), [#4183](https://togithub.com/phpstan/phpstan/issues/4183), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- SimpleXMLElement methods return `static` ([#407](https://togithub.com/phpstan/phpstan-src/pull/407)), [#4222](https://togithub.com/phpstan/phpstan/issues/4222), thanks [@voku](https://togithub.com/voku)!
### [`v0.12.59`](https://togithub.com/phpstan/phpstan/releases/0.12.59)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.58...0.12.59)
# Bugfixes π
- Ignore NeverType in subtractable types ([#389](https://togithub.com/phpstan/phpstan-src/pull/389)), thanks [@jlherren](https://togithub.com/jlherren)!
- Try fixing CpuCoreCounter problem ([phpstan/phpstan-src@`0e32301`](https://togithub.com/phpstan/phpstan-src/commit/0e3230199e5282639bc50500286bc8244ff8a748)), [#4147](https://togithub.com/phpstan/phpstan/issues/4147)
- is_a(): specify class-string types if allow_string: true ([#392](https://togithub.com/phpstan/phpstan-src/pull/392)), [#4124](https://togithub.com/phpstan/phpstan/issues/4124), thanks [@jiripudil](https://togithub.com/jiripudil)!
- CallableType: accept [class-string, constant-string] array as callable ([#394](https://togithub.com/phpstan/phpstan-src/pull/394)), [#2880](https://togithub.com/phpstan/phpstan/issues/2880), thanks [@jiripudil](https://togithub.com/jiripudil)!
- is_a(): support class-string in parameter $class ([#393](https://togithub.com/phpstan/phpstan-src/pull/393)), [#2799](https://togithub.com/phpstan/phpstan/issues/2799), thanks [@jiripudil](https://togithub.com/jiripudil)!
- Support "null" and "false" pseudotypes in native unions ([#400](https://togithub.com/phpstan/phpstan-src/pull/400)), [#4198](https://togithub.com/phpstan/phpstan/issues/4198), [#4179](https://togithub.com/phpstan/phpstan/issues/4179), thanks [@jiripudil](https://togithub.com/jiripudil)!
# Function signature fixes π€
- Fix a misplaced null in XMLWriter::startElementNS ([#388](https://togithub.com/phpstan/phpstan-src/pull/388)), thanks [@spaze](https://togithub.com/spaze)!
- sync some more types with PhpStorm stubs ([#387](https://togithub.com/phpstan/phpstan-src/pull/387)), thanks [@voku](https://togithub.com/voku)!
- Fix ftp_mlsd ([#399](https://togithub.com/phpstan/phpstan-src/pull/399)), thanks [@enumag](https://togithub.com/enumag)!
### [`v0.12.58`](https://togithub.com/phpstan/phpstan/releases/0.12.58)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.57...0.12.58)
# Improvements π§
- Configurable result cache path ([phpstan/phpstan-src@`518b20d`](https://togithub.com/phpstan/phpstan-src/commit/518b20dc47138a7347357bf9fcbb6b339973c088)), [#3755](https://togithub.com/phpstan/phpstan/issues/3755)
- StubValidator - analyse only project stub files ([phpstan/phpstan-src@`f956c6d`](https://togithub.com/phpstan/phpstan-src/commit/f956c6d1dcf46152d29275cda2aad4bf3c81c022))
- Update phpstorm-stubs ([phpstan/phpstan-src@`fb95fab`](https://togithub.com/phpstan/phpstan-src/commit/fb95fabcb98b2485175e007a9ce74962d7c8be87))
- ResultCacheManager - remove `parametersSchema` before comparing config files ([phpstan/phpstan-src@`2a87b3a`](https://togithub.com/phpstan/phpstan-src/commit/2a87b3af4a2f2e431595971518e99065adb3c2f7))
# Bleeding edge πͺ
- Check `DateTime` instantiation ([#380](https://togithub.com/phpstan/phpstan-src/pull/380)), thanks [@b1rdex](https://togithub.com/b1rdex)!
_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._
# Bugfixes π
- Concat between numeric and empty string produces numeric string ([#378](https://togithub.com/phpstan/phpstan-src/pull/378)), thanks [@jlherren](https://togithub.com/jlherren)!
- Fix array dim fetches with `treatPhpDocTypesAsCertain: false` ([phpstan/phpstan-src@`a9ec174`](https://togithub.com/phpstan/phpstan-src/commit/a9ec1746ef4143d59278372ee2a8f8fe2764007f)), [#4099](https://togithub.com/phpstan/phpstan/issues/4099)
- Fixed expression assignment throwing away native expression types for `treatPhpDocTypesAsCertain: false` ([phpstan/phpstan-src@`64da8f9`](https://togithub.com/phpstan/phpstan-src/commit/64da8f9c05f39125e1a9be00c18690aacd284204)), [#3760](https://togithub.com/phpstan/phpstan/issues/3760)
- Result cache - fix result cache save and restore with Neon with statements ([phpstan/phpstan-src@`602c718`](https://togithub.com/phpstan/phpstan-src/commit/602c71877c75faf7efcb0090eb4039a2c3b72d3d)), [#4125](https://togithub.com/phpstan/phpstan/issues/4125)
- Catch more BetterReflection errors ([phpstan/phpstan-src@`3e8ec5f`](https://togithub.com/phpstan/phpstan-src/commit/3e8ec5f0d4ecf3df531c9f674345508a8e1e51fa)), [#4135](https://togithub.com/phpstan/phpstan/issues/4135)
- Fixed SimpleXMLElement cast to boolean ([phpstan/phpstan-src@`83c1e0b`](https://togithub.com/phpstan/phpstan-src/commit/83c1e0b830db4f072e4c139b239b546f1acf4276)), [#3965](https://togithub.com/phpstan/phpstan/issues/3965), [#2997](https://togithub.com/phpstan/phpstan/issues/2997)
- hrtime(true) returns benevolent union type ([phpstan/phpstan-src@`2a39e5a`](https://togithub.com/phpstan/phpstan-src/commit/2a39e5a41185d892c2b55c130950bfda60f91d10)), [#3650](https://togithub.com/phpstan/phpstan/issues/3650)
# Function signature fixes π€
- Fix Reflection::getStaticProperties()'s return type ([#377](https://togithub.com/phpstan/phpstan-src/pull/377)), thanks [@jlherren](https://togithub.com/jlherren)!
- `mysqli_get_client_info()` argument is optional ([phpstan/phpstan-src@`b01c6c9`](https://togithub.com/phpstan/phpstan-src/commit/b01c6c9f71b4e46f6a2505e335dc1000882169ad)), [#4013](https://togithub.com/phpstan/phpstan/issues/4013)
- Fixed `RedisArray::__construct()` ([phpstan/phpstan-src@`3e95603`](https://togithub.com/phpstan/phpstan-src/commit/3e956033ad718b56c607f026bd670613db02f151)), [#3688](https://togithub.com/phpstan/phpstan/issues/3688)
- Fix `DateTime`/`DateTimeImmutable::getLastErrors()` return types ([#380](https://togithub.com/phpstan/phpstan-src/pull/380)), thanks [@b1rdex](https://togithub.com/b1rdex)!
- Use dynamic return type extension for `mb_str_split` ([#379](https://togithub.com/phpstan/phpstan-src/pull/379)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- `XMLWriter::*Ns()` can accept null in `$prefix` ([#383](https://togithub.com/phpstan/phpstan-src/pull/383)), thanks [@spaze](https://togithub.com/spaze)!
- Support for numeric string in bc math ([#382](https://togithub.com/phpstan/phpstan-src/pull/382)), thanks [@aszenz](https://togithub.com/aszenz)!
- Fix socket_select's signature ([#385](https://togithub.com/phpstan/phpstan-src/pull/385)), thanks [@szepeviktor](https://togithub.com/szepeviktor)!
- Fix imageColorAllocate\* and imageColorAt return type declarations ([#386](https://togithub.com/phpstan/phpstan-src/pull/386)), thanks [@mundschenk-at](https://togithub.com/mundschenk-at)!
### [`v0.12.57`](https://togithub.com/phpstan/phpstan/releases/0.12.57)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.56...0.12.57)
# Improvements π§
- New Docker image hosted in GitHub Container Registry and based on PHP 8. See [the homepage](https://togithub.com/orgs/phpstan/packages/container/package/phpstan) and [the documentation](https://phpstan.org/user-guide/docker).
- Support for [attributes](https://wiki.php.net/rfc/attributes_v2) (PHP 8)
- Result cache does not get invalidated when only ignoreErrors changes ([phpstan/phpstan-src@`ef84d94`](https://togithub.com/phpstan/phpstan-src/commit/ef84d9444f889ac5606c37ce80d2fa5f19072cb8)) - this makes working with the baseline instantaneous!
- Result cache - do not restore and save when only files (not directories) are passed as analysed paths ([phpstan/phpstan-src@`dd11e25`](https://togithub.com/phpstan/phpstan-src/commit/dd11e250007d211a420dfe3da132d08bb2180d7c))
- FunctionCallParametersCheck - more precise lines ([phpstan/phpstan-src@`ba119bc`](https://togithub.com/phpstan/phpstan-src/commit/ba119bcc7b95a46f887c124f4f0d096a0e9c66ca))
# Bugfixes π
- Refactored levels that report named arguments errors ([phpstan/phpstan-src@`1e42295`](https://togithub.com/phpstan/phpstan-src/commit/1e42295fdce7ef14ab8fc1bc83d00ce8e9e08c43))
- TeamcityErrorFormatter - attempt to fix notFileSpecificErrors that do not appear ([phpstan/phpstan-src@`8ec0a96`](https://togithub.com/phpstan/phpstan-src/commit/8ec0a963075432d0041f380abf085a4759d3d966))
- Fix FloatType equaling ConstantFloatType ([#375](https://togithub.com/phpstan/phpstan-src/pull/375)), thanks [@jlherren](https://togithub.com/jlherren)!
- Fixed wrong closure typehint ([phpstan/phpstan-src@`50aff6d`](https://togithub.com/phpstan/phpstan-src/commit/50aff6d16cc6d3d3d04778ac579b25c9698b6d74)), [#4097](https://togithub.com/phpstan/phpstan/issues/4097)
- PhpFunctionReflection - do not return nonexistent filename ([phpstan/phpstan-src@`e496d71`](https://togithub.com/phpstan/phpstan-src/commit/e496d71a77ab3b13fb09d2b76e55affd3610bdf4), [phpstan/phpstan-src@`f000222`](https://togithub.com/phpstan/phpstan-src/commit/f000222ca5345d40efa920e52317bdd3bc8c5ea4), [phpstan/phpstan-src@`3ea4fc3`](https://togithub.com/phpstan/phpstan-src/commit/3ea4fc30474cba6db3dbf99d7e9006756ed8c983)), [#4089](https://togithub.com/phpstan/phpstan/issues/4089)
- Updated BetterReflection ([phpstan/phpstan-src@`73a0c1b`](https://togithub.com/phpstan/phpstan-src/commit/73a0c1bf421491501b7a56f053d5df252ddc223c)), [#4095](https://togithub.com/phpstan/phpstan/issues/4095)
- Turns out static method can be called on a trait ([phpstan/phpstan-src@`86c11d3`](https://togithub.com/phpstan/phpstan-src/commit/86c11d335debcfd926ec53213a11d19831891566)), [#4107](https://togithub.com/phpstan/phpstan/issues/4107)
# Function signature fixes π€
- Fixing ldap functions stubs ([#376](https://togithub.com/phpstan/phpstan-src/pull/376)), thanks [@MCMic](https://togithub.com/MCMic)!
### [`v0.12.56`](https://togithub.com/phpstan/phpstan/releases/0.12.56)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.55...0.12.56)
# Improvements π§
- Support for [named arguments](https://wiki.php.net/rfc/named_params) (PHP 8)
- FunctionCallParametersCheck - argument errors reported on more precise lines ([phpstan/phpstan-src@`c507ae2`](https://togithub.com/phpstan/phpstan-src/commit/c507ae2ed63e583a2f55b0fd7111a01ce7867d66))
# Bugfixes π
- Fix internal error ([phpstan/phpstan-src@`63de0e8`](https://togithub.com/phpstan/phpstan-src/commit/63de0e86ef71f44dbce2b6cc56382ac386190811)), [#4087](https://togithub.com/phpstan/phpstan/issues/4087)
- Parallel analysis - fix UTF-8 error ([phpstan/phpstan-src@`0524fb5`](https://togithub.com/phpstan/phpstan-src/commit/0524fb5c8e060d40ef6de65955e8e4b324d94477)), [#3956](https://togithub.com/phpstan/phpstan/issues/3956)
### [`v0.12.55`](https://togithub.com/phpstan/phpstan/releases/0.12.55)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.54...0.12.55)
# Improvements π§
- Support for [match expression](https://wiki.php.net/rfc/match_expression_v2) (PHP 8)
- Support for [nullsafe operator](https://wiki.php.net/rfc/nullsafe_operator) (PHP 8)
- Check for no longer supported `(unset)` cast (PHP 8) ([phpstan/phpstan-src@`56471f6`](https://togithub.com/phpstan/phpstan-src/commit/56471f6c5e8c933e9098443e5f7492eca9cfc9ed))
- `current()` dynamic return type extension ([phpstan/phpstan-src@`dafba25`](https://togithub.com/phpstan/phpstan-src/commit/dafba25bd501931a5076b721ffff5906a2e6cc05)), [#2539](https://togithub.com/phpstan/phpstan/issues/2539)
- OffsetAccessWithoutDimForReadingRule cannot be ignored ([phpstan/phpstan-src@`450592c`](https://togithub.com/phpstan/phpstan-src/commit/450592cf774363e0eb5d44a190c0c1f234993258))
- Updated `jetbrains/phpstorm-stubs` ([phpstan/phpstan-src@`fa8a365`](https://togithub.com/phpstan/phpstan-src/commit/fa8a365e03f95023c4d9ab1709db6e2cecd76ec6))
- Detect parameter type widening violation before PHP 7.2 ([phpstan/phpstan-src@`456f443`](https://togithub.com/phpstan/phpstan-src/commit/456f4435ae304fa1a115d7768f6d6326af25b4ec))
- Improve comparison operators ([#372](https://togithub.com/phpstan/phpstan-src/pull/372)), thanks [@jlherren](https://togithub.com/jlherren)!
- Check also AssignRef in all assignment rules ([phpstan/phpstan-src@`1639213`](https://togithub.com/phpstan/phpstan-src/commit/16392131928ed7ada416484b6443f5bc8e709ae0))
- Running with `--debug -vvv` will show how much memory each file consumes ([phpstan/phpstan-src@`29f8938`](https://togithub.com/phpstan/phpstan-src/commit/29f89385724a5dc5bbb66e515cb182c5d60a4634))
# Bugfixes π
- Fix `range()` with string arguments ([phpstan/phpstan-src@`67a905a`](https://togithub.com/phpstan/phpstan-src/commit/67a905a920ce590ac38be7a85f3642c00441b9a7)), [#2378](https://togithub.com/phpstan/phpstan/issues/2378)
- Assertions done on a variable used in a closure should be transferred inside the closure ([phpstan/phpstan-src@`36dac3d`](https://togithub.com/phpstan/phpstan-src/commit/36dac3de0330aff1b276f6c4e0dfa65f56588437))
- More precise spaceship operator type ([phpstan/phpstan-src@`1a4f8b3`](https://togithub.com/phpstan/phpstan-src/commit/1a4f8b3e8659e7ecd2efbb26e96ade42a2c709fb))
- Merging scopes in root scope - create maybe-existent variables from the other scope too ([phpstan/phpstan-src@`310cb83`](https://togithub.com/phpstan/phpstan-src/commit/310cb839326b462d75ccb000ea2d77b4c58950ae)), [#4070](https://togithub.com/phpstan/phpstan/issues/4070)
- Int and float toString() produces numeric-string ([#371](https://togithub.com/phpstan/phpstan-src/pull/371)), [#4005](https://togithub.com/phpstan/phpstan/issues/4005), thanks [@b1rdex](https://togithub.com/b1rdex)!
- Fix unreachable statement after switch with conditional break ([phpstan/phpstan-src@`46c39e8`](https://togithub.com/phpstan/phpstan-src/commit/46c39e8d456a44eb3bdcea1a65d5c05bef1ae3e0)), [#4076](https://togithub.com/phpstan/phpstan/issues/4076)
- Fix detecting unused constructor parameters when func_get_args() is involved ([phpstan/phpstan-src@`37c6bbc`](https://togithub.com/phpstan/phpstan-src/commit/37c6bbc8ec643c9ac27a962086d84d749870588f)), [#1917](https://togithub.com/phpstan/phpstan/issues/1917)
- Support ARRAY_FILTER_USE_KEY and ARRAY_FILTER_USE_BOTH ([phpstan/phpstan-src@`138cabd`](https://togithub.com/phpstan/phpstan-src/commit/138cabd75aa923eff9f320675e905dafc2c3dc49)), [#3132](https://togithub.com/phpstan/phpstan/issues/3132)
- Fixed compatibility with PHP 7.1 ([phpstan/phpstan-src@`98b5509`](https://togithub.com/phpstan/phpstan-src/commit/98b5509441032c004b44219e2214c4cce067d89c))
- Parallel analysis - listen to error on Encoder ([phpstan/phpstan-src@`1fd761d`](https://togithub.com/phpstan/phpstan-src/commit/1fd761d139902f419fb3f7ee0313309e9c951aec), [phpstan/phpstan-src@`95101a0`](https://togithub.com/phpstan/phpstan-src/commit/95101a01350698ecaa447fbf791516b8f0a5ccee), [phpstan/phpstan-src@`14928bf`](https://togithub.com/phpstan/phpstan-src/commit/14928bf41fbe80ba68ab484e138138442d1cef4a))
- Fix IntegerRangeType overflowing ([#372](https://togithub.com/phpstan/phpstan-src/pull/372)), [#4010](https://togithub.com/phpstan/phpstan/issues/4010), thanks [@jlherren](https://togithub.com/jlherren)!
- Add missing pre/post inc/dec type specifiers in conditions ([#372](https://togithub.com/phpstan/phpstan-src/pull/372)), thanks [@jlherren](https://togithub.com/jlherren)!
- Map phpDoc parameter names for native methods because stub parameter names might be different ([phpstan/phpstan-src@`9afec60`](https://togithub.com/phpstan/phpstan-src/commit/9afec60a1caa9eaa5799fb1bb8dd5a17776f02a9)), [#4084](https://togithub.com/phpstan/phpstan/issues/4084)
# Function signature fixes π€
- Add "base64" as key for `stream_get_meta_data` ([#369](https://togithub.com/phpstan/phpstan-src/pull/369)), thanks [@SvenRtbg](https://togithub.com/SvenRtbg)!
- PDOStatement::getColumnMeta can return false ([phpstan/phpstan-src@`9d5f053`](https://togithub.com/phpstan/phpstan-src/commit/9d5f0534753ae507f0c55f817667fc5a2d916349))
- ceil() never returns int ([#373](https://togithub.com/phpstan/phpstan-src/pull/373)), than
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
0.12.53
->0.12.78
Release Notes
phpstan/phpstan
### [`v0.12.78`](https://togithub.com/phpstan/phpstan/releases/0.12.78) [Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.77...0.12.78) # Improvements π§ - Remember assigned offset value on general arrays ([phpstan/phpstan-src@`0f64ca7`](https://togithub.com/phpstan/phpstan-src/commit/0f64ca749f5246a2550dd746cb416b37e2e6ef84)), [#2112](https://togithub.com/phpstan/phpstan/issues/2112) - Result cache optimization ([phpstan/phpstan-src@`67b2d1c`](https://togithub.com/phpstan/phpstan-src/commit/67b2d1cfa5d9bf769cd71cb2d28dd2f9ca86ba2b)) - Result cache - invalidate when scanned file changed ([phpstan/phpstan-src@`7d279fc`](https://togithub.com/phpstan/phpstan-src/commit/7d279fcfe8d9c2bf9066be302209a58c15b9b8bc)), [#3952](https://togithub.com/phpstan/phpstan/issues/3952) - Result cache - hash autoload file and bootstrap files ([phpstan/phpstan-src@`3457e58`](https://togithub.com/phpstan/phpstan-src/commit/3457e581151d3b639a6ee2837458e678fd38d8c8)), [#3416](https://togithub.com/phpstan/phpstan/issues/3416) - Parameter of closure passed into `array_map`/`array_filter` can resolve to a subtype of native type ([phpstan/phpstan-src@`bf320b0`](https://togithub.com/phpstan/phpstan-src/commit/bf320b0b2551aeb06934c64edcc2597f740ba401)) # Bugfixes π - Invalidate `count($array)` after `array_shift()` ([phpstan/phpstan-src@`6b2afbc`](https://togithub.com/phpstan/phpstan-src/commit/6b2afbccceff67232e28c97156f4f4b916fb4c00)), [#4558](https://togithub.com/phpstan/phpstan/issues/4558) - Fix `@template` name clash from different scopes ([phpstan/phpstan-src@`527269a`](https://togithub.com/phpstan/phpstan-src/commit/527269a28ff58c9ddae6527980540ae4be4be08a)), [#4557](https://togithub.com/phpstan/phpstan/issues/4557), [#3121](https://togithub.com/phpstan/phpstan/issues/3121) - Symbol discovery - fixed looking for functions returning references ([phpstan/phpstan-src@`ec26a00`](https://togithub.com/phpstan/phpstan-src/commit/ec26a001da805605a9bbbbdfb8e55182ee0ad383)), [#3829](https://togithub.com/phpstan/phpstan/issues/3829) - First argument of `method_exists()` might remain a string ([phpstan/phpstan-src@`91894ff`](https://togithub.com/phpstan/phpstan-src/commit/91894ff918d4453d2eb1197cb63c995b11bb801a)), [#4573](https://togithub.com/phpstan/phpstan/issues/4573) - Added many regression tests for already fixed issues ([#2837](https://togithub.com/phpstan/phpstan/issues/2837), [#3096](https://togithub.com/phpstan/phpstan/issues/3096), [#3891](https://togithub.com/phpstan/phpstan/issues/3891), [#3544](https://togithub.com/phpstan/phpstan/issues/3544), [#2675](https://togithub.com/phpstan/phpstan/issues/2675), [#1897](https://togithub.com/phpstan/phpstan/issues/1897), [#1801](https://togithub.com/phpstan/phpstan/issues/1801), [#1711](https://togithub.com/phpstan/phpstan/issues/1711), [#4432](https://togithub.com/phpstan/phpstan/issues/4432), [#2268](https://togithub.com/phpstan/phpstan/issues/2268), [#2298](https://togithub.com/phpstan/phpstan/issues/2298), [#1903](https://togithub.com/phpstan/phpstan/issues/1903), [#2927](https://togithub.com/phpstan/phpstan/issues/2927), [#2434](https://togithub.com/phpstan/phpstan/issues/2434), [#2220](https://togithub.com/phpstan/phpstan/issues/2220), [#1871](https://togithub.com/phpstan/phpstan/issues/1871), [#1707](https://togithub.com/phpstan/phpstan/issues/1707), [#1664](https://togithub.com/phpstan/phpstan/issues/1664), [#1661](https://togithub.com/phpstan/phpstan/issues/1661), [#1656](https://togithub.com/phpstan/phpstan/issues/1656), [#1613](https://togithub.com/phpstan/phpstan/issues/1613), [#2682](https://togithub.com/phpstan/phpstan/issues/2682), [#2689](https://togithub.com/phpstan/phpstan/issues/2689), [#2714](https://togithub.com/phpstan/phpstan/issues/2714), [#2846](https://togithub.com/phpstan/phpstan/issues/2846), [#3309](https://togithub.com/phpstan/phpstan/issues/3309), [#3357](https://togithub.com/phpstan/phpstan/issues/3357), [#3534](https://togithub.com/phpstan/phpstan/issues/3534), [#3608](https://togithub.com/phpstan/phpstan/issues/3608), [#3669](https://togithub.com/phpstan/phpstan/issues/3669), [#3920](https://togithub.com/phpstan/phpstan/issues/3920), [#3261](https://togithub.com/phpstan/phpstan/issues/3261), [#4289](https://togithub.com/phpstan/phpstan/issues/4289), [#2568](https://togithub.com/phpstan/phpstan/issues/2568), [#4209](https://togithub.com/phpstan/phpstan/issues/4209), [#3034](https://togithub.com/phpstan/phpstan/issues/3034), [#3117](https://togithub.com/phpstan/phpstan/issues/3117), [#1971](https://togithub.com/phpstan/phpstan/issues/1971), [#2869](https://togithub.com/phpstan/phpstan/issues/2869), [#3024](https://togithub.com/phpstan/phpstan/issues/3024), [#3134](https://togithub.com/phpstan/phpstan/issues/3134)) # Function signature fixes π€ - Fix accepted types for fputcsv fields parameter ([#451](https://togithub.com/phpstan/phpstan-src/pull/451)), thanks [@DaveLiddament](https://togithub.com/DaveLiddament)! ### [`v0.12.77`](https://togithub.com/phpstan/phpstan/releases/0.12.77) [Compare Source](https://togithub.com/phpstan/phpstan/compare/0.12.76...0.12.77) # Improvements π§ - Check `continue`/`break` outside of loop and switch (level 0) ([phpstan/phpstan-src@`df5c98d`](https://togithub.com/phpstan/phpstan-src/commit/df5c98d7bc071b5fd46ecde4c4a3886285315133)), [#3588](https://togithub.com/phpstan/phpstan/issues/3588), [#794](https://togithub.com/phpstan/phpstan/issues/794) # Bugfixes π - Fix result cache for ever-changing Git commit in `vendor/composer/installed.php` ([phpstan/phpstan-src@`6367eb6`](https://togithub.com/phpstan/phpstan-src/commit/6367eb6d090a48801c0a5c7ec5254339efcb433f)), [#4542](https://togithub.com/phpstan/phpstan/issues/4542) - Avoid false-positive "Offset does not exist" on `isset()` ([#452](https://togithub.com/phpstan/phpstan-src/pull/452)), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Fix function signatures with multiple variants on PHP 8 ([#453](https://togithub.com/phpstan/phpstan-src/pull/453)), [#4538](https://togithub.com/phpstan/phpstan/issues/4538), [#4530](https://togithub.com/phpstan/phpstan/issues/4530) - CallStaticMethodsRule - fix case with non-object class-string ([phpstan/phpstan-src@`ec2ef2a`](https://togithub.com/phpstan/phpstan-src/commit/ec2ef2af56f20ed51155a91e897c4598443bc7b6)), [#4550](https://togithub.com/phpstan/phpstan/issues/4550) - Fixed inferring from nested generic `class-stringRenovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.