nikic/PHP-Parser
### [`v4.15.5`](https://togithub.com/nikic/PHP-Parser/blob/HEAD/CHANGELOG.md#Version-4155-2023-05-19)
[Compare Source](https://togithub.com/nikic/PHP-Parser/compare/v4.15.4...v4.15.5)
##### Added
- Added `makePrivate()`, `makeProtected()`, `makePublic()` and `makeReadonly()` methods to
`Builder\Param` to allow the creation of promoted parameters.
phpstan/extension-installer
### [`v1.3.1`](https://togithub.com/phpstan/extension-installer/releases/tag/1.3.1)
[Compare Source](https://togithub.com/phpstan/extension-installer/compare/1.3.0...1.3.1)
- [f45734b](http://github.com/phpstan/extension-installer/commit/f45734bfb9984c6c56c4486b71230355f066a58a) - Compatibility with Composer 2.5.6
- [d39adc7](http://github.com/phpstan/extension-installer/commit/d39adc7a1962f60d6075a23f0c8a22faa2dd7999) - PHPStan level 8
- [a5ba6ab](http://github.com/phpstan/extension-installer/commit/a5ba6ab35385b9f8e133be32c23a135b024396fe) - Configure PHPStan
- [e56c14f](http://github.com/phpstan/extension-installer/commit/e56c14fb1c3554743da8f3e09d1d91748a8aabc0) - chore(deps): update dependency slevomat/coding-standard to v8.12.0
- [25f6fc3](http://github.com/phpstan/extension-installer/commit/25f6fc3f3557836df2ea577546e0975a76b99823) - chore(deps): update build-cs
- [02e895e](http://github.com/phpstan/extension-installer/commit/02e895ea756b0568cddf70b40ef9fbed69f13c50) - chore(deps): update metcalfc/changelog-generator action to v4.1.0
- [f5b149f](http://github.com/phpstan/extension-installer/commit/f5b149f1d7df211e37d949a5e4894914ab76beb7) - Fix ignoring phpstan/phpstan-phpunit in the root composer.json.
phpstan/phpdoc-parser
### [`v1.22.0`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.22.0)
[Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.3...1.22.0)
- [ec58baf](http://github.com/phpstan/phpdoc-parser/commit/ec58baf7b3c7f1c81b3b00617c953249fb8cf30c) - Multiple Doctrine tags on a single line
- [4aa86cc](http://github.com/phpstan/phpdoc-parser/commit/4aa86ccacb965686f556e734922f46259202a226) - More Doctrine tests
- [97abd8a](http://github.com/phpstan/phpdoc-parser/commit/97abd8a24ee5154b2cdc0de1ea0ac27e6541f0c7) - Update README
- [af8f94b](http://github.com/phpstan/phpdoc-parser/commit/af8f94b896a482d101c7bd79d8fa220efa238995) - Fix Printer
- [a61e41d](http://github.com/phpstan/phpdoc-parser/commit/a61e41da8aa95ca0cdc564072b5cd05d7b35fc7d) - Fix enrichWithAttributes
- [d789c95](http://github.com/phpstan/phpdoc-parser/commit/d789c9512ef75631d6d83ccd8274a68fa9829765) - Test Doctrine node attributes
- [886f662](http://github.com/phpstan/phpdoc-parser/commit/886f662504aeffdb707a33ae1407b23dba3fa242) - Experimental: Parse Doctrine annotations
- [ffc6510](http://github.com/phpstan/phpdoc-parser/commit/ffc65108189a3ad6545e78babd8805eb6672e3ba) - TokenIterator - allow skipping TOKEN_PHPDOC_EOL anywhere for Doctrine annotations
- [492f9b8](http://github.com/phpstan/phpdoc-parser/commit/492f9b8470cce5c1d8e677af35e14a961e44f7ae) - Add general "+" sign support for integer/float numbers
- [8e75539](http://github.com/phpstan/phpdoc-parser/commit/8e7553970b8656c38dcdb57b6b99da57add5819e) - Add "+" sign support for float exponent
- [362bc12](http://github.com/phpstan/phpdoc-parser/commit/362bc1287a1ee286b32551200d173cb59a24bf8d) - Merge branch refs/heads/1.21.x into 1.22.x
- [e5c48b4](http://github.com/phpstan/phpdoc-parser/commit/e5c48b493135b232d5bf55ba281fe71f82493867) - Merge branch refs/heads/1.21.x into 1.22.x
- [150f854](http://github.com/phpstan/phpdoc-parser/commit/150f854ed3516879ae3ebf155242967cd26774d3) - Open 1.22.x
### [`v1.21.3`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.3)
[Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.2...1.21.3)
- [b0c366d](http://github.com/phpstan/phpdoc-parser/commit/b0c366dd2cea79407d635839d25423ba07c55dd6) - Fix token indexes in TypeAliasImportTagValueNode
- [5f901f0](http://github.com/phpstan/phpdoc-parser/commit/5f901f03d1c6faf22b08b487b060b9c5a664a69a) - More tests
- [912d284](http://github.com/phpstan/phpdoc-parser/commit/912d284a1815a9aa756cfa2b147623cce1f0a1e2) - Merge maintained branch workflow
- [740f031](http://github.com/phpstan/phpdoc-parser/commit/740f031d79f0eb7502f1c6e88eb55412daa5945a) - Prepare for 1.22.x
### [`v1.21.2`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.2)
[Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.1...1.21.2)
- [a8094fa](http://github.com/phpstan/phpdoc-parser/commit/a8094fafabf0d7c7b7337a9c6496f4d8fbc718f1) - Do not add extra parentheses when changing the return type of callable
- [b0ea9f4](http://github.com/phpstan/phpdoc-parser/commit/b0ea9f416aa59421c109efe7d46c5d8339a872f0) - Update .gitattributes
### [`v1.21.1`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.1)
[Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.0...1.21.1)
- [e560a3e](http://github.com/phpstan/phpdoc-parser/commit/e560a3eb5e76b35d6d92377e5abb6887c1c13c95) - WordPress docblock test
- [4e3883b](http://github.com/phpstan/phpdoc-parser/commit/4e3883bb11defd3f799ee7e76e5c4a9adf5be829) - Test changing type node for different type
- [90cf56c](http://github.com/phpstan/phpdoc-parser/commit/90cf56c329811799df2bf212539b26919790c32a) - Format-preserving printer: fix bug when replacing already parenthesized type
- [a56b0df](http://github.com/phpstan/phpdoc-parser/commit/a56b0df0175e8325b4108025e210689517cfaf76) - Do not deploy API reference in pull requests
- [ff27205](http://github.com/phpstan/phpdoc-parser/commit/ff27205d5269be8fdbef9f29c158c092060545e8) - Configure PHPCS
- [33195a6](http://github.com/phpstan/phpdoc-parser/commit/33195a62b6028051a326214aafb71da7b4c2f7a5) - Next-gen coding standard workflow
- [7f78fd1](http://github.com/phpstan/phpdoc-parser/commit/7f78fd1ff463a7884a331fdb84a25f724dbfd9ea) - Update README.md
### [`v1.21.0`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.0)
[Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.20.4...1.21.0)
- [6df62b0](http://github.com/phpstan/phpdoc-parser/commit/6df62b08faef4f899772bc7c3bbabb93d2b7a21c) - Update README.md
- [b2fba53](http://github.com/phpstan/phpdoc-parser/commit/b2fba5382f9173a6d3adbe2cd12f512f9bd88b62) - Api Reference favicon
- [39b4430](http://github.com/phpstan/phpdoc-parser/commit/39b44306131c04f68cd0f59f7106eceef1536aae) - Updated README
- [7b254ab](http://github.com/phpstan/phpdoc-parser/commit/7b254ab4fcbc4adb1ef07eea8b09edbb797db906) - ApiGen + deploy to GitHub Pages
- [f440c76](http://github.com/phpstan/phpdoc-parser/commit/f440c768c606537147bca7e592fb393b9e2c85f4) - Printer - preserve and add parentheses as needed
- [b9b6cf0](http://github.com/phpstan/phpdoc-parser/commit/b9b6cf0bfc7f9797262b257379ebe63b4dbadaec) - Fix visibility
- [ced520a](http://github.com/phpstan/phpdoc-parser/commit/ced520a95793731fa3e58d126af8058dacb6fff7) - Micro optimize parseParamTagValue()
- [cc94635](http://github.com/phpstan/phpdoc-parser/commit/cc946352417cef34a2cdb900160caba10e18953d) - Merge branch '1.20.x' into 1.21.x
- [97d18ea](http://github.com/phpstan/phpdoc-parser/commit/97d18ea02586436b36899b4312c6e1f9ed50e540) - Fix build
- [69bc46f](http://github.com/phpstan/phpdoc-parser/commit/69bc46ffa5250e61b0681e98e716865b71b90c3d) - Update dependency slevomat/coding-standard to v8.11.1
- [e9514dc](http://github.com/phpstan/phpdoc-parser/commit/e9514dc3a1633bca6ef3b4497ce9bec184f2d83e) - Open 1.21.x
- [16b30bb](http://github.com/phpstan/phpdoc-parser/commit/16b30bb83992b1e5bcabd90f6c0048ea59feed6b) - Merge branch '1.20.x' into 1.21.x
- [f5a5145](http://github.com/phpstan/phpdoc-parser/commit/f5a51457371da8b9674fc5c57b13deb834a22b31) - Test Printer::print()
- [68d46b9](http://github.com/phpstan/phpdoc-parser/commit/68d46b98b080c1652b64ed4b91d10f38f5ac8a5d) - Extract creating PhpDocParser to setUp
- [2a022b2](http://github.com/phpstan/phpdoc-parser/commit/2a022b29edf98677743868140f44c88ba4388e6d) - Un-extract variable
- [cf694fd](http://github.com/phpstan/phpdoc-parser/commit/cf694fda69b63cfa5ee61e9e657b6ab7efdf5229) - PrinterTest - parse the new printed node again and verify the AST is the same
- [0b4de96](http://github.com/phpstan/phpdoc-parser/commit/0b4de96d9711507e985ec6556f76dd188d418c88) - ConstExprParser: support numeric literal separator
- [308c57c](http://github.com/phpstan/phpdoc-parser/commit/308c57c96db3237c6648ca266a72516d2be82f0a) - Format-preserving printer
phpstan/phpstan
### [`v1.10.21`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.21)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.20...1.10.21)
# Bugfixes π
- Fix defining variables in match condition (https://github.com/phpstan/phpstan-src/commit/d6c2752b4edf145120d7b0ac7908828fde2289e8), [#9474](https://togithub.com/phpstan/phpstan/issues/9474)
- Fix UnusedClosureUsesRule for already traversed match (https://github.com/phpstan/phpstan-src/commit/a7194865487069a0c718227e5a39cd6eab32b8ea), [https://github.com/phpstan/phpstan-phpunit/issues/190](https://togithub.com/phpstan/phpstan-phpunit/issues/190), [#9478](https://togithub.com/phpstan/phpstan/issues/9478)
- Update BetterReflection (https://github.com/phpstan/phpstan-src/commit/a540e44a3649f722464488db3b786c5c894c1775), [#9477](https://togithub.com/phpstan/phpstan/issues/9477)
- Fix newInstance on ReflectionAttribute adapter with enum argument (https://github.com/ondrejmirtes/BetterReflection/commit/277b96077b3c15c12605d876be1b87dd1a88b6f8)
# Internals π
- Cheap checks first in ObjectType ([#2475](https://togithub.com/phpstan/phpstan-src/pull/2475)), thanks [@mad-briller](https://togithub.com/mad-briller)!
### [`v1.10.20`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.20)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.19...1.10.20)
# Improvements π§
- PHPStan Pro: Change Cloudflare DNS for to family version ([#2467](https://togithub.com/phpstan/phpstan-src/pull/2467)), thanks [@spaze](https://togithub.com/spaze)!
- Add `non-zero-int` type ([#2449](https://togithub.com/phpstan/phpstan-src/pull/2449)), thanks [@PrinsFrank](https://togithub.com/PrinsFrank)!
- Implement `gettype()` return type extension ([#2437](https://togithub.com/phpstan/phpstan-src/pull/2437)), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes π
- Allow to remember constant and impure expressions in `match` condition (https://github.com/phpstan/phpstan-src/commit/0cdda0b210a623ee299323da80771c2c84c602f9), [#4451](https://togithub.com/phpstan/phpstan/issues/4451), [#6064](https://togithub.com/phpstan/phpstan/issues/6064), [#9457](https://togithub.com/phpstan/phpstan/issues/9457)
- Fix `gettype` in `match` condition (https://github.com/phpstan/phpstan-src/commit/e4ef00c0573daea5e83199d182e35ea988a7d95b, https://github.com/phpstan/phpstan-src/commit/caa0a5b5247b2ff58c56b543aa3cb286b00ffde7), [#8614](https://togithub.com/phpstan/phpstan/issues/8614)
- Fix `get_class` in `match` condition (https://github.com/phpstan/phpstan-src/commit/106526db8bd64880af81faa61d9f970e793e3c38), [#1885](https://togithub.com/phpstan/phpstan/issues/1885), [#8536](https://togithub.com/phpstan/phpstan/issues/8536), [#8092](https://togithub.com/phpstan/phpstan/issues/8092)
- Understand `get_class` compared with `static::class` (https://github.com/phpstan/phpstan-src/commit/590eb03e0ce2b5b02562ee9bb0af803fcbb1dc95), [#1885](https://togithub.com/phpstan/phpstan/issues/1885)
- Understand `gettype` when there's a union of strings on the other side (https://github.com/phpstan/phpstan-src/commit/36e412ffed0ab6f4220c58276b06041a7a487db3), [#6294](https://togithub.com/phpstan/phpstan/issues/6294), [#2580](https://togithub.com/phpstan/phpstan/issues/2580)
- Treat ConstantArrayType as covariant in its keys and values ([#2464](https://togithub.com/phpstan/phpstan-src/pull/2464)), [#9161](https://togithub.com/phpstan/phpstan/issues/9161), thanks [@jiripudil](https://togithub.com/jiripudil)!
- Treat ArrayType as covariant in its keys and values ([#2465](https://togithub.com/phpstan/phpstan-src/pull/2465)), thanks [@jiripudil](https://togithub.com/jiripudil)!
- Make `NonEmptyArrayType::toArray()` return `$this` ([#2349](https://togithub.com/phpstan/phpstan-src/pull/2349)), [#9208](https://togithub.com/phpstan/phpstan/issues/9208), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Retain list type via `array_push()` and `array_unshift()` ([#2451](https://togithub.com/phpstan/phpstan-src/pull/2451)), [#8449](https://togithub.com/phpstan/phpstan/issues/8449), thanks [@herndlm](https://togithub.com/herndlm)!
- For `@var` above throw and return, change the type of expr only for the stmt callback (https://github.com/phpstan/phpstan-src/commit/b55109537dd62ac0e352b0a55df62cfc83f12f08), [#9459](https://togithub.com/phpstan/phpstan/issues/9459)
# Internals π
- Remove redundant conditions from RemoveUnusedCodeByPhpVersionIdVisitor. ([#2459](https://togithub.com/phpstan/phpstan-src/pull/2459)), thanks [@mad-briller](https://togithub.com/mad-briller)!
- Return early in CachingVistor to avoid always-false instanceof checks. ([#2460](https://togithub.com/phpstan/phpstan-src/pull/2460)), thanks [@mad-briller](https://togithub.com/mad-briller)!
- Introduce CombinationsHelper (https://github.com/phpstan/phpstan-src/commit/175307e12de100632a05f6a122e0873a3c1fc6a1)
- `Type::getFiniteTypes()` (https://github.com/phpstan/phpstan-src/commit/7912caf4b66bdff65d3d6795d4c584c17ece5e51, https://github.com/phpstan/phpstan-src/commit/fa9a951f808466be36792ba65f128f9838ab617e, https://github.com/phpstan/phpstan-src/commit/b5cf52b916ad4d155f1809356c96cbe924f51dbe)
### [`v1.10.19`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.19)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.18...1.10.19)
# Bleeding edge πͺ
- Analysis with zero files results in non-zero exit code (https://github.com/phpstan/phpstan-src/commit/46ff440648e62617df86aa74ba905ffa99897737), [#9410](https://togithub.com/phpstan/phpstan/issues/9410)
*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 π§
- Detect invalid key in multi dimensional array fetch ([#2445](https://togithub.com/phpstan/phpstan-src/pull/2445)), [#6315](https://togithub.com/phpstan/phpstan/issues/6315), thanks [@schlndh](https://togithub.com/schlndh)!
- Support unions of scalars in `sprintf()` arguments (https://github.com/phpstan/phpstan-src/commit/1f955703eea90b7bdf8439ede81a5c6adda85af1)
- Update nikic/php-parser (https://github.com/phpstan/phpstan-src/commit/51a284b8a8c04a06f430063f0267e168c048d88a)
- Update BetterReflection (https://github.com/phpstan/phpstan-src/commit/ff8ad7e9b3933911d321846bc43f678a43b067d8)
# Bugfixes π
- UnusedPrivatePropertyRule - recognize static properties fetched on expr (https://github.com/phpstan/phpstan-src/commit/503978b05e412477d72bb5d846dade3c246f0f70), [#9409](https://togithub.com/phpstan/phpstan/issues/9409), [#8541](https://togithub.com/phpstan/phpstan/issues/8541)
- Union of enum cases accepts the enum class type with negated cases ([#2418](https://togithub.com/phpstan/phpstan-src/pull/2418)), [#8846](https://togithub.com/phpstan/phpstan/issues/8846), thanks [@takaram](https://togithub.com/takaram)!
- Fix key type of superglobal variables ([#2446](https://togithub.com/phpstan/phpstan-src/pull/2446)), [#9306](https://togithub.com/phpstan/phpstan/issues/9306), thanks [@schlndh](https://togithub.com/schlndh)!
- Do not treat definition of functions and class-likes as unreachable ([#2263](https://togithub.com/phpstan/phpstan-src/pull/2263)), [#4002](https://togithub.com/phpstan/phpstan/issues/4002), [#8966](https://togithub.com/phpstan/phpstan/issues/8966), [#8319](https://togithub.com/phpstan/phpstan/issues/8319), thanks [@takaram](https://togithub.com/takaram)!
# Function signature fixes π€
- Allow `Redis::connect()` to have 7 parameters ([#2442](https://togithub.com/phpstan/phpstan-src/pull/2442)), [#9413](https://togithub.com/phpstan/phpstan/issues/9413), thanks [@thbley](https://togithub.com/thbley)!
# Internals π
- StringAlwaysAcceptingObjectWithToStringType is supertype of Stringable objects (https://github.com/phpstan/phpstan-src/commit/9de9efa67facca90b5c5c97851eaf8afff310b4e)
### [`v1.10.18`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.18)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.17...1.10.18)
Implicit throw point is enough to no longer mark multi-catch as dead (https://github.com/phpstan/phpstan-src/commit/c587dd1d870f7a67623e1a3bb7f2811fda688bab), [#9406](https://togithub.com/phpstan/phpstan/issues/9406)
### [`v1.10.17`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.17)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.16...1.10.17)
# Improvements π§
- StubValidator - add missing rules about type aliases (https://github.com/phpstan/phpstan-src/commit/8bb45376ca37a9d67a9a0362809b663cd7567e11)
# Bugfixes π
- Fix more `in_array` issues ([#2432](https://togithub.com/phpstan/phpstan-src/pull/2432)), [#6959](https://togithub.com/phpstan/phpstan/issues/6959), thanks [@schlndh](https://togithub.com/schlndh)!
- Fix overriding `__debugInfo` with covariant return type ([#2435](https://togithub.com/phpstan/phpstan-src/pull/2435)), [#9391](https://togithub.com/phpstan/phpstan/issues/9391), thanks [@staabm](https://togithub.com/staabm)!
- Improve `Map::remove()` `@throws` inference ([#2434](https://togithub.com/phpstan/phpstan-src/pull/2434)), [#9066](https://togithub.com/phpstan/phpstan/issues/9066), thanks [@baci266](https://togithub.com/baci266)!
- `array_is_list` narrows the type even when not on Bleeding Edge (https://github.com/phpstan/phpstan-src/commit/de2566adeafe5ca36a3517f0a4e3c147d63f037a), [#9381](https://togithub.com/phpstan/phpstan/issues/9381)
- AutoloadSourceLocator - do not execute autoloader if the class already exists but is evaled (https://github.com/phpstan/phpstan-src/commit/32b889dd29202eb545d8558b1c93a6b804828d8d), [#7960](https://togithub.com/phpstan/phpstan/issues/7960)
- EnumSanityRule - use scope inside enum (https://github.com/phpstan/phpstan-src/commit/04af510e5649a834f2e99750007048ba686ad995), [#9402](https://togithub.com/phpstan/phpstan/issues/9402)
- Fix native type of array after `array_push()` (https://github.com/phpstan/phpstan-src/commit/564f79f96c6104cda479a3d0319af356d1b166ad), [#9403](https://togithub.com/phpstan/phpstan/issues/9403)
- Refactor pieces looking for dead code for more precise detection of properties, methods, constants (https://github.com/phpstan/phpstan-src/commit/d09401df4514a16eb38334cf4187093a4e66eefb, https://github.com/phpstan/phpstan-src/commit/ffc0495d89763b65d93256928cb95bc4b07f6138), [#8412](https://togithub.com/phpstan/phpstan/issues/8412), [#8958](https://togithub.com/phpstan/phpstan/issues/8958), [#8563](https://togithub.com/phpstan/phpstan/issues/8563), thanks [@takaram](https://togithub.com/takaram)!
- Fix param-type specification interfering with root-expression types ([#2439](https://togithub.com/phpstan/phpstan-src/pull/2439)), [#9404](https://togithub.com/phpstan/phpstan/issues/9404), thanks [@staabm](https://togithub.com/staabm)!
# Function signature fixes π€
- More precise `getimagesize*` return type ([#2438](https://togithub.com/phpstan/phpstan-src/pull/2438)), thanks [@staabm](https://togithub.com/staabm)!
- base64\_decode returns false only in strict mode ([#2419](https://togithub.com/phpstan/phpstan-src/pull/2419)), thanks [@kamil-tekiela](https://togithub.com/kamil-tekiela)!
# Internals π
- Minor refinements to MutatingScope `empty()` and typehint helper ([#2430](https://togithub.com/phpstan/phpstan-src/pull/2430)), thanks [@mad-briller](https://togithub.com/mad-briller)!
### [`v1.10.16`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.16)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.15...1.10.16)
# Bleeding edge πͺ
- Report dead types even in multi-exception catch ([#2399](https://togithub.com/phpstan/phpstan-src/pull/2399)), thanks [@JanTvrdik](https://togithub.com/JanTvrdik)!
- `error_log` errors with `message_type=2` ([#2428](https://togithub.com/phpstan/phpstan-src/pull/2428)), [#9380](https://togithub.com/phpstan/phpstan/issues/9380), 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 π§
- `CallableType` and `ClosureType::describe()` - use phpdoc-parser Printer for better precision (https://github.com/phpstan/phpstan-src/commit/30f60c18f5efa9e7d5a5495c90f901178cf17a57), [#9268](https://togithub.com/phpstan/phpstan/issues/9268)
- `OffsetAccessType::describe()` uses toPhpDocNode and phpdoc-parser printer (https://github.com/phpstan/phpstan-src/commit/347fdbf2caa4d889d9e59af12fc1049a2aa608bb)
- Smarter `extract()` with constant arrays ([#2417](https://togithub.com/phpstan/phpstan-src/pull/2417)), [#9331](https://togithub.com/phpstan/phpstan/issues/9331), thanks [@MartinMystikJonas](https://togithub.com/MartinMystikJonas)!
- Detect more issues in enum declarations ([#2371](https://togithub.com/phpstan/phpstan-src/pull/2371)), [#9184](https://togithub.com/phpstan/phpstan/issues/9184), thanks [@kubk](https://togithub.com/kubk)!
- Correct magic signature methods when typehints are missing ([#2409](https://togithub.com/phpstan/phpstan-src/pull/2409)), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes π
- Fix `SplDoublyLinkedList::offsetGet` return type ([#2373](https://togithub.com/phpstan/phpstan-src/pull/2373)), [#9274](https://togithub.com/phpstan/phpstan/issues/9274), thanks [@takaram](https://togithub.com/takaram)!
- Delegate `get_called_class()` to `static::class` (https://github.com/phpstan/phpstan-src/commit/188acf440787c611fa86344b84fe1f41f027e4f6), [#7574](https://togithub.com/phpstan/phpstan/issues/7574), [#5252](https://togithub.com/phpstan/phpstan/issues/5252), [#4061](https://togithub.com/phpstan/phpstan/issues/4061)
- Fix enum type subtracting ([#2415](https://togithub.com/phpstan/phpstan-src/pull/2415)), thanks [@schlndh](https://togithub.com/schlndh)!
- Fix loose comparison against enum ([#2410](https://togithub.com/phpstan/phpstan-src/pull/2410)), thanks [@schlndh](https://togithub.com/schlndh)!
# Internals π
- NodeScopeResolver: refactor matching throw points computation ([#2399](https://togithub.com/phpstan/phpstan-src/pull/2399)), thanks [@JanTvrdik](https://togithub.com/JanTvrdik)!
- ConstantArrayType - `toPhpDocNode` without keys if they are not necessary (https://github.com/phpstan/phpstan-src/commit/413079d807433cffac4dc9c33535920ff5bfeb18)
- Test `@var` in and out of function (https://github.com/phpstan/phpstan-src/commit/4e1934796a74ba49e2ef980894b66d3d5ba2b656), [#9331](https://togithub.com/phpstan/phpstan/issues/9331)
symfony/console
### [`v6.3.0`](https://togithub.com/symfony/console/releases/tag/v6.3.0)
[Compare Source](https://togithub.com/symfony/console/compare/v6.2.11...v6.3.0)
**Changelog** (https://github.com/symfony/console/compare/v6.3.0-RC2...v6.3.0)
-
### [`v6.2.11`](https://togithub.com/symfony/console/releases/tag/v6.2.11)
[Compare Source](https://togithub.com/symfony/console/compare/v6.2.10...v6.2.11)
**Changelog** (https://github.com/symfony/console/compare/v6.2.10...v6.2.11)
- bug [symfony/symfony#50442](https://togithub.com/symfony/symfony/issues/50442) \[SecurityBundle] Update security-1.0.xsd to include missing access-token definition ([@aegypius](https://togithub.com/aegypius))
- bug [symfony/symfony#50429](https://togithub.com/symfony/symfony/issues/50429) \[Console] block input stream if needed ([@joelwurtz](https://togithub.com/joelwurtz))
- bug [symfony/symfony#50312](https://togithub.com/symfony/symfony/issues/50312) \[Security] Skip clearing CSRF Token on stateless logout ([@chalasr](https://togithub.com/chalasr))
- bug [symfony/symfony#50315](https://togithub.com/symfony/symfony/issues/50315) \[Translation] Fix handling of null messages in `ArrayLoader` (@rob006)
- bug [symfony/symfony#50338](https://togithub.com/symfony/symfony/issues/50338) \[Console] Remove `exec` and replace it by `shell_exec` ([@maxbeckers](https://togithub.com/maxbeckers))
- bug [symfony/symfony#50193](https://togithub.com/symfony/symfony/issues/50193) \[Serializer] Fix `SerializedPath` not working with constructor arguments (@HypeMC)
- bug [symfony/symfony#49063](https://togithub.com/symfony/symfony/issues/49063) \[Messenger] Respect `isRetryable` decision of the retry strategy for re-delivery (@FlyingDR)
- bug [symfony/symfony#50214](https://togithub.com/symfony/symfony/issues/50214) \[WebProfilerBundle] Remove legacy filters remnants ([@MatTheCat](https://togithub.com/MatTheCat))
- bug [symfony/symfony#50235](https://togithub.com/symfony/symfony/issues/50235) \[HttpClient] Fix getting through proxies via CONNECT ([@nicolas-grekas](https://togithub.com/nicolas-grekas))
- bug [symfony/symfony#50241](https://togithub.com/symfony/symfony/issues/50241) \[HttpKernel] Prevent initialising lazy services during services reset ([@tucksaun](https://togithub.com/tucksaun))
- bug [symfony/symfony#49557](https://togithub.com/symfony/symfony/issues/49557) \[PropertyInfo] Fix phpDocExtractor nullable array value type ([@fabpot](https://togithub.com/fabpot))
- bug [symfony/symfony#50213](https://togithub.com/symfony/symfony/issues/50213) \[ErrorHandler] Prevent conflicts with WebProfilerBundleβs JavaScript ([@MatTheCat](https://togithub.com/MatTheCat))
- bug [symfony/symfony#50192](https://togithub.com/symfony/symfony/issues/50192) \[Serializer] backed enum throw notNormalizableValueException outside construct method ([@alli83](https://togithub.com/alli83))
- bug [symfony/symfony#50238](https://togithub.com/symfony/symfony/issues/50238) \[HttpKernel] Don't use eval() to render ESI/SSI ([@nicolas-grekas](https://togithub.com/nicolas-grekas))
symfony/finder
### [`v6.3.0`](https://togithub.com/symfony/finder/releases/tag/v6.3.0)
[Compare Source](https://togithub.com/symfony/finder/compare/v6.2.7...v6.3.0)
**Changelog** (https://github.com/symfony/finder/compare/v6.3.0-RC2...v6.3.0)
-
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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
4.15.4
->4.15.5
1.3.0
->1.3.1
1.20.4
->1.22.0
1.10.15
->1.10.21
6.2.10
->6.3.0
6.2.7
->6.3.0
Release Notes
nikic/PHP-Parser
### [`v4.15.5`](https://togithub.com/nikic/PHP-Parser/blob/HEAD/CHANGELOG.md#Version-4155-2023-05-19) [Compare Source](https://togithub.com/nikic/PHP-Parser/compare/v4.15.4...v4.15.5) ##### Added - Added `makePrivate()`, `makeProtected()`, `makePublic()` and `makeReadonly()` methods to `Builder\Param` to allow the creation of promoted parameters.phpstan/extension-installer
### [`v1.3.1`](https://togithub.com/phpstan/extension-installer/releases/tag/1.3.1) [Compare Source](https://togithub.com/phpstan/extension-installer/compare/1.3.0...1.3.1) - [f45734b](http://github.com/phpstan/extension-installer/commit/f45734bfb9984c6c56c4486b71230355f066a58a) - Compatibility with Composer 2.5.6 - [d39adc7](http://github.com/phpstan/extension-installer/commit/d39adc7a1962f60d6075a23f0c8a22faa2dd7999) - PHPStan level 8 - [a5ba6ab](http://github.com/phpstan/extension-installer/commit/a5ba6ab35385b9f8e133be32c23a135b024396fe) - Configure PHPStan - [e56c14f](http://github.com/phpstan/extension-installer/commit/e56c14fb1c3554743da8f3e09d1d91748a8aabc0) - chore(deps): update dependency slevomat/coding-standard to v8.12.0 - [25f6fc3](http://github.com/phpstan/extension-installer/commit/25f6fc3f3557836df2ea577546e0975a76b99823) - chore(deps): update build-cs - [02e895e](http://github.com/phpstan/extension-installer/commit/02e895ea756b0568cddf70b40ef9fbed69f13c50) - chore(deps): update metcalfc/changelog-generator action to v4.1.0 - [f5b149f](http://github.com/phpstan/extension-installer/commit/f5b149f1d7df211e37d949a5e4894914ab76beb7) - Fix ignoring phpstan/phpstan-phpunit in the root composer.json.phpstan/phpdoc-parser
### [`v1.22.0`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.22.0) [Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.3...1.22.0) - [ec58baf](http://github.com/phpstan/phpdoc-parser/commit/ec58baf7b3c7f1c81b3b00617c953249fb8cf30c) - Multiple Doctrine tags on a single line - [4aa86cc](http://github.com/phpstan/phpdoc-parser/commit/4aa86ccacb965686f556e734922f46259202a226) - More Doctrine tests - [97abd8a](http://github.com/phpstan/phpdoc-parser/commit/97abd8a24ee5154b2cdc0de1ea0ac27e6541f0c7) - Update README - [af8f94b](http://github.com/phpstan/phpdoc-parser/commit/af8f94b896a482d101c7bd79d8fa220efa238995) - Fix Printer - [a61e41d](http://github.com/phpstan/phpdoc-parser/commit/a61e41da8aa95ca0cdc564072b5cd05d7b35fc7d) - Fix enrichWithAttributes - [d789c95](http://github.com/phpstan/phpdoc-parser/commit/d789c9512ef75631d6d83ccd8274a68fa9829765) - Test Doctrine node attributes - [886f662](http://github.com/phpstan/phpdoc-parser/commit/886f662504aeffdb707a33ae1407b23dba3fa242) - Experimental: Parse Doctrine annotations - [ffc6510](http://github.com/phpstan/phpdoc-parser/commit/ffc65108189a3ad6545e78babd8805eb6672e3ba) - TokenIterator - allow skipping TOKEN_PHPDOC_EOL anywhere for Doctrine annotations - [492f9b8](http://github.com/phpstan/phpdoc-parser/commit/492f9b8470cce5c1d8e677af35e14a961e44f7ae) - Add general "+" sign support for integer/float numbers - [8e75539](http://github.com/phpstan/phpdoc-parser/commit/8e7553970b8656c38dcdb57b6b99da57add5819e) - Add "+" sign support for float exponent - [362bc12](http://github.com/phpstan/phpdoc-parser/commit/362bc1287a1ee286b32551200d173cb59a24bf8d) - Merge branch refs/heads/1.21.x into 1.22.x - [e5c48b4](http://github.com/phpstan/phpdoc-parser/commit/e5c48b493135b232d5bf55ba281fe71f82493867) - Merge branch refs/heads/1.21.x into 1.22.x - [150f854](http://github.com/phpstan/phpdoc-parser/commit/150f854ed3516879ae3ebf155242967cd26774d3) - Open 1.22.x ### [`v1.21.3`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.3) [Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.2...1.21.3) - [b0c366d](http://github.com/phpstan/phpdoc-parser/commit/b0c366dd2cea79407d635839d25423ba07c55dd6) - Fix token indexes in TypeAliasImportTagValueNode - [5f901f0](http://github.com/phpstan/phpdoc-parser/commit/5f901f03d1c6faf22b08b487b060b9c5a664a69a) - More tests - [912d284](http://github.com/phpstan/phpdoc-parser/commit/912d284a1815a9aa756cfa2b147623cce1f0a1e2) - Merge maintained branch workflow - [740f031](http://github.com/phpstan/phpdoc-parser/commit/740f031d79f0eb7502f1c6e88eb55412daa5945a) - Prepare for 1.22.x ### [`v1.21.2`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.2) [Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.1...1.21.2) - [a8094fa](http://github.com/phpstan/phpdoc-parser/commit/a8094fafabf0d7c7b7337a9c6496f4d8fbc718f1) - Do not add extra parentheses when changing the return type of callable - [b0ea9f4](http://github.com/phpstan/phpdoc-parser/commit/b0ea9f416aa59421c109efe7d46c5d8339a872f0) - Update .gitattributes ### [`v1.21.1`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.1) [Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.21.0...1.21.1) - [e560a3e](http://github.com/phpstan/phpdoc-parser/commit/e560a3eb5e76b35d6d92377e5abb6887c1c13c95) - WordPress docblock test - [4e3883b](http://github.com/phpstan/phpdoc-parser/commit/4e3883bb11defd3f799ee7e76e5c4a9adf5be829) - Test changing type node for different type - [90cf56c](http://github.com/phpstan/phpdoc-parser/commit/90cf56c329811799df2bf212539b26919790c32a) - Format-preserving printer: fix bug when replacing already parenthesized type - [a56b0df](http://github.com/phpstan/phpdoc-parser/commit/a56b0df0175e8325b4108025e210689517cfaf76) - Do not deploy API reference in pull requests - [ff27205](http://github.com/phpstan/phpdoc-parser/commit/ff27205d5269be8fdbef9f29c158c092060545e8) - Configure PHPCS - [33195a6](http://github.com/phpstan/phpdoc-parser/commit/33195a62b6028051a326214aafb71da7b4c2f7a5) - Next-gen coding standard workflow - [7f78fd1](http://github.com/phpstan/phpdoc-parser/commit/7f78fd1ff463a7884a331fdb84a25f724dbfd9ea) - Update README.md ### [`v1.21.0`](https://togithub.com/phpstan/phpdoc-parser/releases/tag/1.21.0) [Compare Source](https://togithub.com/phpstan/phpdoc-parser/compare/1.20.4...1.21.0) - [6df62b0](http://github.com/phpstan/phpdoc-parser/commit/6df62b08faef4f899772bc7c3bbabb93d2b7a21c) - Update README.md - [b2fba53](http://github.com/phpstan/phpdoc-parser/commit/b2fba5382f9173a6d3adbe2cd12f512f9bd88b62) - Api Reference favicon - [39b4430](http://github.com/phpstan/phpdoc-parser/commit/39b44306131c04f68cd0f59f7106eceef1536aae) - Updated README - [7b254ab](http://github.com/phpstan/phpdoc-parser/commit/7b254ab4fcbc4adb1ef07eea8b09edbb797db906) - ApiGen + deploy to GitHub Pages - [f440c76](http://github.com/phpstan/phpdoc-parser/commit/f440c768c606537147bca7e592fb393b9e2c85f4) - Printer - preserve and add parentheses as needed - [b9b6cf0](http://github.com/phpstan/phpdoc-parser/commit/b9b6cf0bfc7f9797262b257379ebe63b4dbadaec) - Fix visibility - [ced520a](http://github.com/phpstan/phpdoc-parser/commit/ced520a95793731fa3e58d126af8058dacb6fff7) - Micro optimize parseParamTagValue() - [cc94635](http://github.com/phpstan/phpdoc-parser/commit/cc946352417cef34a2cdb900160caba10e18953d) - Merge branch '1.20.x' into 1.21.x - [97d18ea](http://github.com/phpstan/phpdoc-parser/commit/97d18ea02586436b36899b4312c6e1f9ed50e540) - Fix build - [69bc46f](http://github.com/phpstan/phpdoc-parser/commit/69bc46ffa5250e61b0681e98e716865b71b90c3d) - Update dependency slevomat/coding-standard to v8.11.1 - [e9514dc](http://github.com/phpstan/phpdoc-parser/commit/e9514dc3a1633bca6ef3b4497ce9bec184f2d83e) - Open 1.21.x - [16b30bb](http://github.com/phpstan/phpdoc-parser/commit/16b30bb83992b1e5bcabd90f6c0048ea59feed6b) - Merge branch '1.20.x' into 1.21.x - [f5a5145](http://github.com/phpstan/phpdoc-parser/commit/f5a51457371da8b9674fc5c57b13deb834a22b31) - Test Printer::print() - [68d46b9](http://github.com/phpstan/phpdoc-parser/commit/68d46b98b080c1652b64ed4b91d10f38f5ac8a5d) - Extract creating PhpDocParser to setUp - [2a022b2](http://github.com/phpstan/phpdoc-parser/commit/2a022b29edf98677743868140f44c88ba4388e6d) - Un-extract variable - [cf694fd](http://github.com/phpstan/phpdoc-parser/commit/cf694fda69b63cfa5ee61e9e657b6ab7efdf5229) - PrinterTest - parse the new printed node again and verify the AST is the same - [0b4de96](http://github.com/phpstan/phpdoc-parser/commit/0b4de96d9711507e985ec6556f76dd188d418c88) - ConstExprParser: support numeric literal separator - [308c57c](http://github.com/phpstan/phpdoc-parser/commit/308c57c96db3237c6648ca266a72516d2be82f0a) - Format-preserving printerphpstan/phpstan
### [`v1.10.21`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.21) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.20...1.10.21) # Bugfixes π - Fix defining variables in match condition (https://github.com/phpstan/phpstan-src/commit/d6c2752b4edf145120d7b0ac7908828fde2289e8), [#9474](https://togithub.com/phpstan/phpstan/issues/9474) - Fix UnusedClosureUsesRule for already traversed match (https://github.com/phpstan/phpstan-src/commit/a7194865487069a0c718227e5a39cd6eab32b8ea), [https://github.com/phpstan/phpstan-phpunit/issues/190](https://togithub.com/phpstan/phpstan-phpunit/issues/190), [#9478](https://togithub.com/phpstan/phpstan/issues/9478) - Update BetterReflection (https://github.com/phpstan/phpstan-src/commit/a540e44a3649f722464488db3b786c5c894c1775), [#9477](https://togithub.com/phpstan/phpstan/issues/9477) - Fix newInstance on ReflectionAttribute adapter with enum argument (https://github.com/ondrejmirtes/BetterReflection/commit/277b96077b3c15c12605d876be1b87dd1a88b6f8) # Internals π - Cheap checks first in ObjectType ([#2475](https://togithub.com/phpstan/phpstan-src/pull/2475)), thanks [@mad-briller](https://togithub.com/mad-briller)! ### [`v1.10.20`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.20) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.19...1.10.20) # Improvements π§ - PHPStan Pro: Change Cloudflare DNS for to family version ([#2467](https://togithub.com/phpstan/phpstan-src/pull/2467)), thanks [@spaze](https://togithub.com/spaze)! - Add `non-zero-int` type ([#2449](https://togithub.com/phpstan/phpstan-src/pull/2449)), thanks [@PrinsFrank](https://togithub.com/PrinsFrank)! - Implement `gettype()` return type extension ([#2437](https://togithub.com/phpstan/phpstan-src/pull/2437)), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes π - Allow to remember constant and impure expressions in `match` condition (https://github.com/phpstan/phpstan-src/commit/0cdda0b210a623ee299323da80771c2c84c602f9), [#4451](https://togithub.com/phpstan/phpstan/issues/4451), [#6064](https://togithub.com/phpstan/phpstan/issues/6064), [#9457](https://togithub.com/phpstan/phpstan/issues/9457) - Fix `gettype` in `match` condition (https://github.com/phpstan/phpstan-src/commit/e4ef00c0573daea5e83199d182e35ea988a7d95b, https://github.com/phpstan/phpstan-src/commit/caa0a5b5247b2ff58c56b543aa3cb286b00ffde7), [#8614](https://togithub.com/phpstan/phpstan/issues/8614) - Fix `get_class` in `match` condition (https://github.com/phpstan/phpstan-src/commit/106526db8bd64880af81faa61d9f970e793e3c38), [#1885](https://togithub.com/phpstan/phpstan/issues/1885), [#8536](https://togithub.com/phpstan/phpstan/issues/8536), [#8092](https://togithub.com/phpstan/phpstan/issues/8092) - Understand `get_class` compared with `static::class` (https://github.com/phpstan/phpstan-src/commit/590eb03e0ce2b5b02562ee9bb0af803fcbb1dc95), [#1885](https://togithub.com/phpstan/phpstan/issues/1885) - Understand `gettype` when there's a union of strings on the other side (https://github.com/phpstan/phpstan-src/commit/36e412ffed0ab6f4220c58276b06041a7a487db3), [#6294](https://togithub.com/phpstan/phpstan/issues/6294), [#2580](https://togithub.com/phpstan/phpstan/issues/2580) - Treat ConstantArrayType as covariant in its keys and values ([#2464](https://togithub.com/phpstan/phpstan-src/pull/2464)), [#9161](https://togithub.com/phpstan/phpstan/issues/9161), thanks [@jiripudil](https://togithub.com/jiripudil)! - Treat ArrayType as covariant in its keys and values ([#2465](https://togithub.com/phpstan/phpstan-src/pull/2465)), thanks [@jiripudil](https://togithub.com/jiripudil)! - Make `NonEmptyArrayType::toArray()` return `$this` ([#2349](https://togithub.com/phpstan/phpstan-src/pull/2349)), [#9208](https://togithub.com/phpstan/phpstan/issues/9208), thanks [@zonuexe](https://togithub.com/zonuexe)! - Retain list type via `array_push()` and `array_unshift()` ([#2451](https://togithub.com/phpstan/phpstan-src/pull/2451)), [#8449](https://togithub.com/phpstan/phpstan/issues/8449), thanks [@herndlm](https://togithub.com/herndlm)! - For `@var` above throw and return, change the type of expr only for the stmt callback (https://github.com/phpstan/phpstan-src/commit/b55109537dd62ac0e352b0a55df62cfc83f12f08), [#9459](https://togithub.com/phpstan/phpstan/issues/9459) # Internals π - Remove redundant conditions from RemoveUnusedCodeByPhpVersionIdVisitor. ([#2459](https://togithub.com/phpstan/phpstan-src/pull/2459)), thanks [@mad-briller](https://togithub.com/mad-briller)! - Return early in CachingVistor to avoid always-false instanceof checks. ([#2460](https://togithub.com/phpstan/phpstan-src/pull/2460)), thanks [@mad-briller](https://togithub.com/mad-briller)! - Introduce CombinationsHelper (https://github.com/phpstan/phpstan-src/commit/175307e12de100632a05f6a122e0873a3c1fc6a1) - `Type::getFiniteTypes()` (https://github.com/phpstan/phpstan-src/commit/7912caf4b66bdff65d3d6795d4c584c17ece5e51, https://github.com/phpstan/phpstan-src/commit/fa9a951f808466be36792ba65f128f9838ab617e, https://github.com/phpstan/phpstan-src/commit/b5cf52b916ad4d155f1809356c96cbe924f51dbe) ### [`v1.10.19`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.19) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.18...1.10.19) # Bleeding edge πͺ - Analysis with zero files results in non-zero exit code (https://github.com/phpstan/phpstan-src/commit/46ff440648e62617df86aa74ba905ffa99897737), [#9410](https://togithub.com/phpstan/phpstan/issues/9410) *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 π§ - Detect invalid key in multi dimensional array fetch ([#2445](https://togithub.com/phpstan/phpstan-src/pull/2445)), [#6315](https://togithub.com/phpstan/phpstan/issues/6315), thanks [@schlndh](https://togithub.com/schlndh)! - Support unions of scalars in `sprintf()` arguments (https://github.com/phpstan/phpstan-src/commit/1f955703eea90b7bdf8439ede81a5c6adda85af1) - Update nikic/php-parser (https://github.com/phpstan/phpstan-src/commit/51a284b8a8c04a06f430063f0267e168c048d88a) - Update BetterReflection (https://github.com/phpstan/phpstan-src/commit/ff8ad7e9b3933911d321846bc43f678a43b067d8) # Bugfixes π - UnusedPrivatePropertyRule - recognize static properties fetched on expr (https://github.com/phpstan/phpstan-src/commit/503978b05e412477d72bb5d846dade3c246f0f70), [#9409](https://togithub.com/phpstan/phpstan/issues/9409), [#8541](https://togithub.com/phpstan/phpstan/issues/8541) - Union of enum cases accepts the enum class type with negated cases ([#2418](https://togithub.com/phpstan/phpstan-src/pull/2418)), [#8846](https://togithub.com/phpstan/phpstan/issues/8846), thanks [@takaram](https://togithub.com/takaram)! - Fix key type of superglobal variables ([#2446](https://togithub.com/phpstan/phpstan-src/pull/2446)), [#9306](https://togithub.com/phpstan/phpstan/issues/9306), thanks [@schlndh](https://togithub.com/schlndh)! - Do not treat definition of functions and class-likes as unreachable ([#2263](https://togithub.com/phpstan/phpstan-src/pull/2263)), [#4002](https://togithub.com/phpstan/phpstan/issues/4002), [#8966](https://togithub.com/phpstan/phpstan/issues/8966), [#8319](https://togithub.com/phpstan/phpstan/issues/8319), thanks [@takaram](https://togithub.com/takaram)! # Function signature fixes π€ - Allow `Redis::connect()` to have 7 parameters ([#2442](https://togithub.com/phpstan/phpstan-src/pull/2442)), [#9413](https://togithub.com/phpstan/phpstan/issues/9413), thanks [@thbley](https://togithub.com/thbley)! # Internals π - StringAlwaysAcceptingObjectWithToStringType is supertype of Stringable objects (https://github.com/phpstan/phpstan-src/commit/9de9efa67facca90b5c5c97851eaf8afff310b4e) ### [`v1.10.18`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.18) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.17...1.10.18) Implicit throw point is enough to no longer mark multi-catch as dead (https://github.com/phpstan/phpstan-src/commit/c587dd1d870f7a67623e1a3bb7f2811fda688bab), [#9406](https://togithub.com/phpstan/phpstan/issues/9406) ### [`v1.10.17`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.17) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.16...1.10.17) # Improvements π§ - StubValidator - add missing rules about type aliases (https://github.com/phpstan/phpstan-src/commit/8bb45376ca37a9d67a9a0362809b663cd7567e11) # Bugfixes π - Fix more `in_array` issues ([#2432](https://togithub.com/phpstan/phpstan-src/pull/2432)), [#6959](https://togithub.com/phpstan/phpstan/issues/6959), thanks [@schlndh](https://togithub.com/schlndh)! - Fix overriding `__debugInfo` with covariant return type ([#2435](https://togithub.com/phpstan/phpstan-src/pull/2435)), [#9391](https://togithub.com/phpstan/phpstan/issues/9391), thanks [@staabm](https://togithub.com/staabm)! - Improve `Map::remove()` `@throws` inference ([#2434](https://togithub.com/phpstan/phpstan-src/pull/2434)), [#9066](https://togithub.com/phpstan/phpstan/issues/9066), thanks [@baci266](https://togithub.com/baci266)! - `array_is_list` narrows the type even when not on Bleeding Edge (https://github.com/phpstan/phpstan-src/commit/de2566adeafe5ca36a3517f0a4e3c147d63f037a), [#9381](https://togithub.com/phpstan/phpstan/issues/9381) - AutoloadSourceLocator - do not execute autoloader if the class already exists but is evaled (https://github.com/phpstan/phpstan-src/commit/32b889dd29202eb545d8558b1c93a6b804828d8d), [#7960](https://togithub.com/phpstan/phpstan/issues/7960) - EnumSanityRule - use scope inside enum (https://github.com/phpstan/phpstan-src/commit/04af510e5649a834f2e99750007048ba686ad995), [#9402](https://togithub.com/phpstan/phpstan/issues/9402) - Fix native type of array after `array_push()` (https://github.com/phpstan/phpstan-src/commit/564f79f96c6104cda479a3d0319af356d1b166ad), [#9403](https://togithub.com/phpstan/phpstan/issues/9403) - Refactor pieces looking for dead code for more precise detection of properties, methods, constants (https://github.com/phpstan/phpstan-src/commit/d09401df4514a16eb38334cf4187093a4e66eefb, https://github.com/phpstan/phpstan-src/commit/ffc0495d89763b65d93256928cb95bc4b07f6138), [#8412](https://togithub.com/phpstan/phpstan/issues/8412), [#8958](https://togithub.com/phpstan/phpstan/issues/8958), [#8563](https://togithub.com/phpstan/phpstan/issues/8563), thanks [@takaram](https://togithub.com/takaram)! - Fix param-type specification interfering with root-expression types ([#2439](https://togithub.com/phpstan/phpstan-src/pull/2439)), [#9404](https://togithub.com/phpstan/phpstan/issues/9404), thanks [@staabm](https://togithub.com/staabm)! # Function signature fixes π€ - More precise `getimagesize*` return type ([#2438](https://togithub.com/phpstan/phpstan-src/pull/2438)), thanks [@staabm](https://togithub.com/staabm)! - base64\_decode returns false only in strict mode ([#2419](https://togithub.com/phpstan/phpstan-src/pull/2419)), thanks [@kamil-tekiela](https://togithub.com/kamil-tekiela)! # Internals π - Minor refinements to MutatingScope `empty()` and typehint helper ([#2430](https://togithub.com/phpstan/phpstan-src/pull/2430)), thanks [@mad-briller](https://togithub.com/mad-briller)! ### [`v1.10.16`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.16) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.15...1.10.16) # Bleeding edge πͺ - Report dead types even in multi-exception catch ([#2399](https://togithub.com/phpstan/phpstan-src/pull/2399)), thanks [@JanTvrdik](https://togithub.com/JanTvrdik)! - `error_log` errors with `message_type=2` ([#2428](https://togithub.com/phpstan/phpstan-src/pull/2428)), [#9380](https://togithub.com/phpstan/phpstan/issues/9380), 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 π§ - `CallableType` and `ClosureType::describe()` - use phpdoc-parser Printer for better precision (https://github.com/phpstan/phpstan-src/commit/30f60c18f5efa9e7d5a5495c90f901178cf17a57), [#9268](https://togithub.com/phpstan/phpstan/issues/9268) - `OffsetAccessType::describe()` uses toPhpDocNode and phpdoc-parser printer (https://github.com/phpstan/phpstan-src/commit/347fdbf2caa4d889d9e59af12fc1049a2aa608bb) - Smarter `extract()` with constant arrays ([#2417](https://togithub.com/phpstan/phpstan-src/pull/2417)), [#9331](https://togithub.com/phpstan/phpstan/issues/9331), thanks [@MartinMystikJonas](https://togithub.com/MartinMystikJonas)! - Detect more issues in enum declarations ([#2371](https://togithub.com/phpstan/phpstan-src/pull/2371)), [#9184](https://togithub.com/phpstan/phpstan/issues/9184), thanks [@kubk](https://togithub.com/kubk)! - Correct magic signature methods when typehints are missing ([#2409](https://togithub.com/phpstan/phpstan-src/pull/2409)), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes π - Fix `SplDoublyLinkedList::offsetGet` return type ([#2373](https://togithub.com/phpstan/phpstan-src/pull/2373)), [#9274](https://togithub.com/phpstan/phpstan/issues/9274), thanks [@takaram](https://togithub.com/takaram)! - Delegate `get_called_class()` to `static::class` (https://github.com/phpstan/phpstan-src/commit/188acf440787c611fa86344b84fe1f41f027e4f6), [#7574](https://togithub.com/phpstan/phpstan/issues/7574), [#5252](https://togithub.com/phpstan/phpstan/issues/5252), [#4061](https://togithub.com/phpstan/phpstan/issues/4061) - Fix enum type subtracting ([#2415](https://togithub.com/phpstan/phpstan-src/pull/2415)), thanks [@schlndh](https://togithub.com/schlndh)! - Fix loose comparison against enum ([#2410](https://togithub.com/phpstan/phpstan-src/pull/2410)), thanks [@schlndh](https://togithub.com/schlndh)! # Internals π - NodeScopeResolver: refactor matching throw points computation ([#2399](https://togithub.com/phpstan/phpstan-src/pull/2399)), thanks [@JanTvrdik](https://togithub.com/JanTvrdik)! - ConstantArrayType - `toPhpDocNode` without keys if they are not necessary (https://github.com/phpstan/phpstan-src/commit/413079d807433cffac4dc9c33535920ff5bfeb18) - Test `@var` in and out of function (https://github.com/phpstan/phpstan-src/commit/4e1934796a74ba49e2ef980894b66d3d5ba2b656), [#9331](https://togithub.com/phpstan/phpstan/issues/9331)symfony/console
### [`v6.3.0`](https://togithub.com/symfony/console/releases/tag/v6.3.0) [Compare Source](https://togithub.com/symfony/console/compare/v6.2.11...v6.3.0) **Changelog** (https://github.com/symfony/console/compare/v6.3.0-RC2...v6.3.0) - ### [`v6.2.11`](https://togithub.com/symfony/console/releases/tag/v6.2.11) [Compare Source](https://togithub.com/symfony/console/compare/v6.2.10...v6.2.11) **Changelog** (https://github.com/symfony/console/compare/v6.2.10...v6.2.11) - bug [symfony/symfony#50442](https://togithub.com/symfony/symfony/issues/50442) \[SecurityBundle] Update security-1.0.xsd to include missing access-token definition ([@aegypius](https://togithub.com/aegypius)) - bug [symfony/symfony#50429](https://togithub.com/symfony/symfony/issues/50429) \[Console] block input stream if needed ([@joelwurtz](https://togithub.com/joelwurtz)) - bug [symfony/symfony#50312](https://togithub.com/symfony/symfony/issues/50312) \[Security] Skip clearing CSRF Token on stateless logout ([@chalasr](https://togithub.com/chalasr)) - bug [symfony/symfony#50315](https://togithub.com/symfony/symfony/issues/50315) \[Translation] Fix handling of null messages in `ArrayLoader` (@rob006) - bug [symfony/symfony#50338](https://togithub.com/symfony/symfony/issues/50338) \[Console] Remove `exec` and replace it by `shell_exec` ([@maxbeckers](https://togithub.com/maxbeckers)) - bug [symfony/symfony#50193](https://togithub.com/symfony/symfony/issues/50193) \[Serializer] Fix `SerializedPath` not working with constructor arguments (@HypeMC) - bug [symfony/symfony#49063](https://togithub.com/symfony/symfony/issues/49063) \[Messenger] Respect `isRetryable` decision of the retry strategy for re-delivery (@FlyingDR) - bug [symfony/symfony#50214](https://togithub.com/symfony/symfony/issues/50214) \[WebProfilerBundle] Remove legacy filters remnants ([@MatTheCat](https://togithub.com/MatTheCat)) - bug [symfony/symfony#50235](https://togithub.com/symfony/symfony/issues/50235) \[HttpClient] Fix getting through proxies via CONNECT ([@nicolas-grekas](https://togithub.com/nicolas-grekas)) - bug [symfony/symfony#50241](https://togithub.com/symfony/symfony/issues/50241) \[HttpKernel] Prevent initialising lazy services during services reset ([@tucksaun](https://togithub.com/tucksaun)) - bug [symfony/symfony#49557](https://togithub.com/symfony/symfony/issues/49557) \[PropertyInfo] Fix phpDocExtractor nullable array value type ([@fabpot](https://togithub.com/fabpot)) - bug [symfony/symfony#50213](https://togithub.com/symfony/symfony/issues/50213) \[ErrorHandler] Prevent conflicts with WebProfilerBundleβs JavaScript ([@MatTheCat](https://togithub.com/MatTheCat)) - bug [symfony/symfony#50192](https://togithub.com/symfony/symfony/issues/50192) \[Serializer] backed enum throw notNormalizableValueException outside construct method ([@alli83](https://togithub.com/alli83)) - bug [symfony/symfony#50238](https://togithub.com/symfony/symfony/issues/50238) \[HttpKernel] Don't use eval() to render ESI/SSI ([@nicolas-grekas](https://togithub.com/nicolas-grekas))symfony/finder
### [`v6.3.0`](https://togithub.com/symfony/finder/releases/tag/v6.3.0) [Compare Source](https://togithub.com/symfony/finder/compare/v6.2.7...v6.3.0) **Changelog** (https://github.com/symfony/finder/compare/v6.3.0-RC2...v6.3.0) -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.
This PR has been generated by Mend Renovate. View repository job log here.