phpstan/phpstan (phpstan/phpstan)
### [`v1.11.1`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.1)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.0...1.11.1)
# Improvements ๐ง
- Support integer ranges in `sprintf()` constant result inference ([#3075](https://togithub.com/phpstan/phpstan-src/pull/3075)), thanks [@staabm](https://togithub.com/staabm)!
# Bugfixes ๐
- Do not complain about `impure(Function|Method).pure` if it has `@phpstan-assert` tags (https://github.com/phpstan/phpstan-src/commit/9544f8a6b52dbd6068800bbfc5bdaf67fe04a8c2)
- Remove tip about deprecated config option (https://github.com/phpstan/phpstan-src/commit/d603c7b676e3b91f4b7ba81d46aee3e9a593f883), [#11000](https://togithub.com/phpstan/phpstan/issues/11000)
- Fix false positive with `reportPossiblyNonexistentConstantArrayOffset: true` (https://github.com/phpstan/phpstan-src/commit/5277630459518024b16272bf6b6fd216eb3d10ed), [#10997](https://togithub.com/phpstan/phpstan/issues/10997)
- Fix parent keyword case sensitivity ([#3064](https://togithub.com/phpstan/phpstan-src/pull/3064)), thanks [@staabm](https://togithub.com/staabm)!
- InlineHTML is an impure point ([#3072](https://togithub.com/phpstan/phpstan-src/pull/3072)), thanks [@staabm](https://togithub.com/staabm)!
- UnionTypeHelper - prevent infinite recursion (https://github.com/phpstan/phpstan-src/commit/bb3da26d562727c3122a344622059ded2239d6ab), [#11027](https://togithub.com/phpstan/phpstan/issues/11027)
- Fix more potential for infinite recursion (https://github.com/phpstan/phpstan-src/commit/1d02c4f27684644e8361cf2a2bc5713adef9b95e)
- RangeFunctionReturnTypeExtension - fix internal ValueError (https://github.com/phpstan/phpstan-src/commit/fe3895ada98940d1a71c2eb115d61afda9fd7a2c), [#11026](https://togithub.com/phpstan/phpstan/issues/11026)
- Property unset is an impure point (https://github.com/phpstan/phpstan-src/commit/702ddcd7805ba08c0765bdf0930beaef0e6b4fc1), [#11001](https://togithub.com/phpstan/phpstan/issues/11001)
- Fix property assign not being an impure point in arrow function (https://github.com/phpstan/phpstan-src/commit/35ff6895f48b74e8bc0dda7ec94c40e73c84099b), [#11001](https://togithub.com/phpstan/phpstan/issues/11001)
- Fix internal error when accessing enum case by class-string (https://github.com/phpstan/phpstan-src/commit/1116e03389f0f47297c2638b5b67c84f4d339478), [#10985](https://togithub.com/phpstan/phpstan/issues/10985)
- Fix resolving `self` and `static` in `@phpstan-closure-this` from trait stub file (https://github.com/phpstan/phpstan-src/commit/93402494ee92dd2e7264f112105151586203e0ec), [#11009](https://togithub.com/phpstan/phpstan/issues/11009)
- CallToMethodStatementWithoutImpurePointsRule - fix for methods called on unions (https://github.com/phpstan/phpstan-src/commit/ee33f1e48b5ae9d6e99500814c186cd31e7a764f), [#11011](https://togithub.com/phpstan/phpstan/issues/11011)
# Function signature fixes ๐ค
- Offset `uri` in `stream_get_meta_data` calls is always present on PHP 8.3+ (https://github.com/phpstan/phpstan-src/commit/885d46bc8d7555a8b762914821ad2f0f5871e517), [#11024](https://togithub.com/phpstan/phpstan/issues/11024), [#10999](https://togithub.com/phpstan/phpstan/issues/10999)
### [`v1.11.0`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.0)
[Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.67...1.11.0)
[**Read the article about PHPStan 1.11 on phpstan.org ยป**](https://phpstan.org/blog/phpstan-1-11-errors-identifiers-phpstan-pro-reboot)
# Major new features ๐
- **Error identifiers**
- A way to categorize reported errors by a stable identifier. Up until now you had to use specific and ever-changing error messages
- Can be used for [ignoring specific errors locally](https://phpstan.org/user-guide/ignoring-errors#ignoring-in-code-using-phpdocs) with new `@phpstan-ignore` comment (uses current or next line automatically)
- Can be used for [ignoring specific errors in `ignoreErrors`](https://phpstan.org/user-guide/ignoring-errors#ignoring-in-configuration-file) section of your configuration file (phpstan.neon)
- Can be used in [output formatters](https://phpstan.org/user-guide/output-format)
- Can be seen in PHPStan Pro GUI or in TableErrorFormatter with `-v`
- Catalogue with source code links: https://phpstan.org/error-identifiers
- **PHPStan Pro Reboot**
- A new migration wizard will effortlessly migrate all your `@phpstan-ignore-line` and `@phpstan-ignore-next-line` to the new `@phpstan-ignore` comment style with error identifiers. The old comment style is dangerous because it ignores all errors, current and future, on that line.
- Revamped UI for much more comfortable viewing and browsing of reported errors
- The new UI also lets you **browse ignored errors**, from `ignoreErrors`, from your baseline and also ignored locally in source code using comments
- Streaming errors during launch: You don't have to wait for the analysis to complete, you can see errors as they come in during the analysis
- Support for mapping file paths to the host filesystem when running in Docker or remotely
- Try it out by running PHPStan with `--pro` CLI option
- PHPDoc tags describing callable lifecycle: `@param-immediately-invoked-callable`, `@param-later-invoked-callable`
- Useful for exception analysis (https://phpstan.org/blog/bring-your-exceptions-under-control) and `@phpstan-pure`
- PHPDoc tag `@param-closure-this` to describe what `$this` is bound to in a passed closure
- Two new config options around stricter offset checks in arrays ([#3028](https://togithub.com/phpstan/phpstan-src/pull/3028)), [#7553](https://togithub.com/phpstan/phpstan/issues/7553), thanks [@ttomdewit](https://togithub.com/ttomdewit)!
- `reportPossiblyNonexistentGeneralArrayOffset`
- `reportPossiblyNonexistentConstantArrayOffset`
- [Learn more in the documentation](https://phpstan.org/config-reference#reportpossiblynonexistentgeneralarrayoffset)
# Bleeding edge ๐ช
- Checking truthiness of `@phpstan-pure` above functions and methods
- Check `new`/function call/method call/static method call on a separate line without any side effects even without `@phpstan-pure` PHPDoc tag on the declaration side
- https://github.com/phpstan/phpstan-src/commit/281a87d1ab61809076ecfa6dfc2cc86e3babe235
- [#3020](https://togithub.com/phpstan/phpstan-src/pull/3020), thanks [@staabm](https://togithub.com/staabm)!
- [#3022](https://togithub.com/phpstan/phpstan-src/pull/3022), thanks [@staabm](https://togithub.com/staabm)!
- [#3023](https://togithub.com/phpstan/phpstan-src/pull/3023), thanks [@staabm](https://togithub.com/staabm)!
- BetterNoopRule - take advantage of impure points (https://github.com/phpstan/phpstan-src/commit/a6470521b65d7424f552633c1f3827704c6262c3), [#10389](https://togithub.com/phpstan/phpstan/issues/10389)
- Run missing type check on `@param-out` (https://github.com/phpstan/phpstan-src/commit/56b20024386d983927c64dfa895ff026bed2798c)
- CallToConstructorStatementWithoutSideEffectsRule - report class with no constructor (https://github.com/phpstan/phpstan-src/commit/b116d25a6e4ba6c09f59af6569d9e6f6fd20aff4)
- Deprecated: returning plain strings as errors, use RuleErrorBuilder
- Learn more: [Using RuleErrorBuilder to enrich reported errors in custom rules](https://phpstan.org/blog/using-rule-error-builder)
- Deprecated: returning RuleError without identifier (https://github.com/phpstan/phpstan-src/commit/969e6fa31d5484d42dab902703cfc6820a983cfd)
*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 ๐ง
- Generic RuleErrorBuilder (https://github.com/phpstan/phpstan-src/commit/9a3ed85178097e2d74f27623dd02bdd72c571e5b)
- Deprecate `checkMissingIterableValueType: false` and `checkGenericClassInNonGenericObjectType: false` in favour of ignoring via identifiers (https://github.com/phpstan/phpstan-src/commit/a64998108b318581b0203e84582711c3e4d1e43c)
- Deprecate old NoopRule - replaced by BetterNoopRule in bleeding edge (https://github.com/phpstan/phpstan-src/commit/109083571de6102cb854b9975c1463551ef678d0)
- Allow ignoring errors from CollectedDataNode with local comments (https://github.com/phpstan/phpstan-src/commit/dc3b75ab4a2acd863405416620240302b284973a)
- Introduce `new` type ([#3050](https://togithub.com/phpstan/phpstan-src/pull/3050)), [#9704](https://togithub.com/phpstan/phpstan/issues/9704), thanks [@ruudk](https://togithub.com/ruudk)!
- RuleTestCase - fail on PHP warnings, notices etc. ([#3030](https://togithub.com/phpstan/phpstan-src/pull/3030)), thanks [@janedbal](https://togithub.com/janedbal)!
- Check duplicate assignment of redeclared promoted readonly properties ([#3049](https://togithub.com/phpstan/phpstan-src/pull/3049)), [#8101](https://togithub.com/phpstan/phpstan/issues/8101), [#9863](https://togithub.com/phpstan/phpstan/issues/9863), [#9864](https://togithub.com/phpstan/phpstan/issues/9864), thanks [@schlndh](https://togithub.com/schlndh)!
- Remove line from "nikic/php-parser" error message ([#2845](https://togithub.com/phpstan/phpstan-src/pull/2845)), thanks [@mvorisek](https://togithub.com/mvorisek)!
- Stub validator - PHPStan classes are known without extra stubs (https://github.com/phpstan/phpstan-src/commit/d004c239677fb7abe41aa16e8e1b45bfac63f773)
- Stub validator - PhpParser classes are known without extra stubs (https://github.com/phpstan/phpstan-src/commit/3e498e1592221f3a01527c10318424014d52f85d)
- CheckstyleErrorFormatter - include error identifier in source attribute (https://github.com/phpstan/phpstan-src/commit/f66cf5badd2c98317d1d296ba24c3be77efcda18), [#1205](https://togithub.com/phpstan/phpstan/issues/1205)
- BaselinePhpErrorFormatter - error identifiers in comments (https://github.com/phpstan/phpstan-src/commit/4b32cac2d1b98c6af65c07041fdbc64e5d3f3baf)
- `RuleErrorBuilder::file()` - file path needs to exist (https://github.com/phpstan/phpstan-src/commit/c453f29f60992167a5aa46d4926c18a420ae7b26)
- AbstractMethodInNonAbstractClassRule - better error message for enums (https://github.com/phpstan/phpstan-src/commit/b5dd34e492b03566458e98b314c6852cfd683916)
- Fixed Xdebug spelling ([#2746](https://togithub.com/phpstan/phpstan-src/pull/2746)), thanks [@derickr](https://togithub.com/derickr)!
- Track invalidated `$this` and used variables after invoking closure ([#2980](https://togithub.com/phpstan/phpstan-src/pull/2980))
- Support `@phan-` prefixes on recognized PHPDoc tags ([#3000](https://togithub.com/phpstan/phpstan-src/pull/3000)), thanks [@anomiex](https://togithub.com/anomiex)!
- `pure-callable` and `pure-Closure` PHPDoc types (https://github.com/phpstan/phpstan-src/commit/cdaff5f00d621c3a94e048b8bd9fa864d47b3228)
- `highlight_string()` flips side-effects depending on $return ([#3021](https://togithub.com/phpstan/phpstan-src/pull/3021)), thanks [@staabm](https://togithub.com/staabm)!
- Improve types for predefined constants ([#3054](https://togithub.com/phpstan/phpstan-src/pull/3054)), thanks [@zonuexe](https://togithub.com/zonuexe)!
# Bugfixes ๐
- Make `AccessoryNonFalsyStringType::toInteger()` return `IntegerType` instead of non-zero ([#3018](https://togithub.com/phpstan/phpstan-src/pull/3018)), [#10893](https://togithub.com/phpstan/phpstan/issues/10893), thanks [@zonuexe](https://togithub.com/zonuexe)!
- Filter scope by non-empty array after foreach regardless of `polluteScopeWithAlwaysIterableForeach` ([#3029](https://togithub.com/phpstan/phpstan-src/pull/3029)), [#10922](https://togithub.com/phpstan/phpstan/issues/10922), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)!
- Preserve large arrays with same keys through union ([#3032](https://togithub.com/phpstan/phpstan-src/pull/3032)), [#9397](https://togithub.com/phpstan/phpstan/issues/9397), [#10080](https://togithub.com/phpstan/phpstan/issues/10080), thanks [@schlndh](https://togithub.com/schlndh)!
- Fix `count($x) > $n === true` negation ([#3037](https://togithub.com/phpstan/phpstan-src/pull/3037)), [#10952](https://togithub.com/phpstan/phpstan/issues/10952), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)!
- Fix NAN not accepting NAN ([#3036](https://togithub.com/phpstan/phpstan-src/pull/3036)), [#10956](https://togithub.com/phpstan/phpstan/issues/10956), [#10297](https://togithub.com/phpstan/phpstan/issues/10297), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)!
- DateTimeInstantiationRule - fix error message for `new` with wrong name case (https://github.com/phpstan/phpstan-src/commit/59ac31a554203a7ae3fb9449bbd5b61f3afe2e20)
- Process ConstFetch (https://github.com/phpstan/phpstan-src/commit/b5c63c296783bd067b14bad410dab2b87a1b7b3c)
- Fix `preg_match_all` behaviour with no flags (https://github.com/phpstan/phpstan-src/commit/a856ec7ab5540cb4a8d30e9e170958a32a7165b2)
- `file_get_contents` is an impure function (https://github.com/phpstan/phpstan-src/commit/2b5b3174c7f00e56b7692b4c26552b2ad13c73d5)
- Fix `ClosureType::equals()` (https://github.com/phpstan/phpstan-src/commit/29c35b584a948e9a3c90e2d56312069ce073e6e6)
- Use statement result of analysed anonymous class to inform about throw points and impure points (https://github.com/phpstan/phpstan-src/commit/70a75f68896e5f7eaa988c0cb7f20dad32c3c172)
- Filter out implicit throw points from callables when `exceptions.implicitThrows: false` ([#3016](https://togithub.com/phpstan/phpstan-src/pull/3016)), thanks [@janedbal](https://togithub.com/janedbal)!
- Fix `ConstantArrayType::hasOffsetValueType()` for offset union type where all types are valid (https://github.com/phpstan/phpstan-src/commit/26e949b0d093751c98e9a106f680092abf3b28d9)
- `non-empty-list` always has offset 0 (https://github.com/phpstan/phpstan-src/commit/f4d1d481472b45c56ba2cd49ae98065092217f36)
- Narrow to `non-empty-string`/`non-falsey-string` after `mb_strlen()` ([#3038](https://togithub.com/phpstan/phpstan-src/pull/3038)), thanks [@staabm](https://togithub.com/staabm)!
- Implement `Type::isOffsetAccessLegal()` to detect offset access that crashes even in `isset()` ([#3045](https://togithub.com/phpstan/phpstan-src/pull/3045)), [#8393](https://togithub.com/phpstan/phpstan/issues/8393), [#10926](https://togithub.com/phpstan/phpstan/issues/10926), thanks [@rajyan](https://togithub.com/rajyan)!
- Specify types on `match()` condition correctly ([#3053](https://togithub.com/phpstan/phpstan-src/pull/3053)), [#10974](https://togithub.com/phpstan/phpstan/issues/10974), [#9694](https://togithub.com/phpstan/phpstan/issues/9694), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)!
- `json_decode` with force array flag: subtract all objects, not just stdClass ([#3052](https://togithub.com/phpstan/phpstan-src/pull/3052)), thanks [@rajyan](https://togithub.com/rajyan)!
- Fix `strlen($x) > $n === true` negation ([#3040](https://togithub.com/phpstan/phpstan-src/pull/3040)), thanks [@staabm](https://togithub.com/staabm)!
- Support multi-byte string function variants ([#3039](https://togithub.com/phpstan/phpstan-src/pull/3039)), thanks [@staabm](https://togithub.com/staabm)!
- Final scope from `Continue_` points should not be used for `while (true)` ([#3057](https://togithub.com/phpstan/phpstan-src/pull/3057)), [#10980](https://togithub.com/phpstan/phpstan/issues/10980), thanks [@greew](https://togithub.com/greew)!
- Fix enum performance problem ([#3062](https://togithub.com/phpstan/phpstan-src/pull/3062), [#3060](https://togithub.com/phpstan/phpstan-src/pull/3060)), [#10979](https://togithub.com/phpstan/phpstan/issues/10979), thanks [@staabm](https://togithub.com/staabm)!
- NULL and null as a property default value are treated differently when overriding a parent property ([#3063](https://togithub.com/phpstan/phpstan-src/pull/3063)), [#10987](https://togithub.com/phpstan/phpstan/issues/10987), thanks [@staabm](https://togithub.com/staabm)!
# Function signature fixes ๐ค
- Make the url key of metadata returned by `stream_get_meta_data()` optional ([#3024](https://togithub.com/phpstan/phpstan-src/pull/3024)), [#10887](https://togithub.com/phpstan/phpstan/issues/10887), thanks [@hirokinoue](https://togithub.com/hirokinoue)!
- Narrow `Closure::bind` `$newScope` param ([#2817](https://togithub.com/phpstan/phpstan-src/pull/2817)), thanks [@mvorisek](https://togithub.com/mvorisek)!
- Infer object type mysqli_fetch_object ([#2675](https://togithub.com/phpstan/phpstan/issues/2675)) ([#2675](https://togithub.com/phpstan/phpstan-src/pull/2675)), thanks [@staabm](https://togithub.com/staabm)!
- Fix `Imagick::identifyImage()` return type ([#3017](https://togithub.com/phpstan/phpstan-src/pull/3017)), thanks [@SVillette](https://togithub.com/SVillette)!
# Internals ๐
- Clean up old identifiers and metadata (https://github.com/phpstan/phpstan-src/commit/c476a8611d06ed5ce850ba74bd087ed0fa9304ad)
- Delete StatementOrderVisitor that is no longer needed (https://github.com/phpstan/phpstan-src/commit/017d321f47b2a49c11b0337a920235b0770da164)
- Introduce `ClassReflection::getClassTypeDescription()` (https://github.com/phpstan/phpstan-src/commit/dec9e435a7e0cea96079eb08c799df6b49b92e82)
- Fix classname typo in tests ([#2461](https://togithub.com/phpstan/phpstan-src/pull/2461)), thanks [@szepeviktor](https://togithub.com/szepeviktor)!
- Fix various typos ([#2463](https://togithub.com/phpstan/phpstan-src/pull/2463)), thanks [@szepeviktor](https://togithub.com/szepeviktor)!
- Added text regarding patch issues during installation ([#2670](https://togithub.com/phpstan/phpstan-src/pull/2670)), thanks [@mt-satak](https://togithub.com/mt-satak)!
- Fix typo in ArgumentsNormalizer ([#2705](https://togithub.com/phpstan/phpstan-src/pull/2705)), thanks [@mad-briller](https://togithub.com/mad-briller)!
- Rich PHPDoc for ExceptionTypeResolver (https://github.com/phpstan/phpstan-src/commit/e7ab4f741c0ec22cf70457c7a542b7978202b10a)
- Hide internal commands ([#2833](https://togithub.com/phpstan/phpstan-src/pull/2833)), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)!
- Test invalidated object in static closure ([#2981](https://togithub.com/phpstan/phpstan-src/pull/2981)), thanks [@staabm](https://togithub.com/staabm)!
- PHPDoc: address multiple variables defined in one [@param](https://togithub.com/param) ([#3001](https://togithub.com/phpstan/phpstan-src/pull/3001)), thanks [@Muqsit](https://togithub.com/Muqsit)!
- Do not assume every contributor uses PhpStorm (https://github.com/phpstan/phpstan-src/commit/d1834e69d06e0f85a45db8f5fb7a2c5a6ce898b6)
- TypeInferenceTestCase: ability to disable implicit throws ([#3015](https://togithub.com/phpstan/phpstan-src/pull/3015)), thanks [@janedbal](https://togithub.com/janedbal)!
- Slightly reduce comparing and calling methods for trivial optimizations ([#3004](https://togithub.com/phpstan/phpstan-src/pull/3004)), [#10926](https://togithub.com/phpstan/phpstan/issues/10926), thanks [@zonuexe](https://togithub.com/zonuexe)!
- AnalyserResultFinalizer - DRY of running CollectedDataNode rules (https://github.com/phpstan/phpstan-src/commit/38e2c96ee45733c8d3b44d048ce27a9b5450718e)
- Introduce LocalIgnoresProcessor (https://github.com/phpstan/phpstan-src/commit/d026655260727c7c6e4cd69d50d57569e9128c13)
- Introduce `RuleErrorBuilder::treatPhpDocTypesAsCertainTip()` for a bit more DRYness ([#3035](https://togithub.com/phpstan/phpstan-src/pull/3035)), thanks [@axlon](https://togithub.com/axlon)!
- Make ResultCacheEndToEndTest pass level 9 ([#3055](https://togithub.com/phpstan/phpstan-src/pull/3055)), [#10977](https://togithub.com/phpstan/phpstan/issues/10977), thanks [@AJenbo](https://togithub.com/AJenbo)!
- ClassReflection - cache enum cases (https://github.com/phpstan/phpstan-src/commit/39ce0425737cdbacfee5fbc08160d023cb5bc639), [#10979](https://togithub.com/phpstan/phpstan/issues/10979)
phpstan/phpstan-phpunit (phpstan/phpstan-phpunit)
### [`v1.4.0`](https://togithub.com/phpstan/phpstan-phpunit/releases/tag/1.4.0)
[Compare Source](https://togithub.com/phpstan/phpstan-phpunit/compare/1.3.16...1.4.0)
- [f3ea021](http://github.com/phpstan/phpstan-phpunit/commit/f3ea021866f4263f07ca3636bf22c64be9610c11) - Update lock-closed-issues.yml
- [f93aec7](http://github.com/phpstan/phpstan-phpunit/commit/f93aec74624bcdb9773da40a729f111df1f6e22a) - Merge remote-tracking branch 'origin/1.3.x' into 1.4.x
- [77bdf96](http://github.com/phpstan/phpstan-phpunit/commit/77bdf9644e105833f810eefc3d6e051ac33dd939) - Update metcalfc/changelog-generator action to v4.3.1
- [6a1df9a](http://github.com/phpstan/phpstan-phpunit/commit/6a1df9a11edc5642f4a3b462fd1bcb7b07bafa35) - Update cbrgm/mastodon-github-action action to v2
- [e95a58b](http://github.com/phpstan/phpstan-phpunit/commit/e95a58baebb1f2daf7067c3667bff371b202151d) - Update metcalfc/changelog-generator action to v4.2.0
- [77345df](http://github.com/phpstan/phpstan-phpunit/commit/77345df14f04d05252c8b13a5b4444eacd6a0764) - Update dessant/lock-threads action to v5
- [99bb21e](http://github.com/phpstan/phpstan-phpunit/commit/99bb21e6ead1df1c6b9ec2b5750804a00aa6fb08) - Merge branch '1.3.x' into 1.4.x
- [ac8ea99](http://github.com/phpstan/phpstan-phpunit/commit/ac8ea9981675cb991b7bbcde55add4b73dc7c690) - Update actions/checkout action to v4
- [529f300](http://github.com/phpstan/phpstan-phpunit/commit/529f300b5bf38a5ca83617b162ffd58c8c6f5647) - Merge branch '1.3.x' into 1.4.x
- [62e883e](http://github.com/phpstan/phpstan-phpunit/commit/62e883ea3762a31faa4f6609c20fb1363762d4e3) - Open 1.4.x-dev
- [97ec1d3](http://github.com/phpstan/phpstan-phpunit/commit/97ec1d34e9eb2669df4de20e0eb9d6a99f92b4d6) - Merge branch '1.3.x' into 1.4.x
- [4d99a7d](http://github.com/phpstan/phpstan-phpunit/commit/4d99a7d020727a2c7b4b428aecbe6a0171bb78a5) - Require PHPStan 1.11
- [908e232](http://github.com/phpstan/phpstan-phpunit/commit/908e232dab1297e5ad6e492b5dfa2d828727915d) - Error identifiers
phpstan/phpstan-strict-rules (phpstan/phpstan-strict-rules)
### [`v1.6.0`](https://togithub.com/phpstan/phpstan-strict-rules/releases/tag/1.6.0)
[Compare Source](https://togithub.com/phpstan/phpstan-strict-rules/compare/1.5.5...1.6.0)
- [363f921](http://github.com/phpstan/phpstan-strict-rules/commit/363f921dd8441777d4fc137deb99beb486c77df1) - Update lock-closed-issues.yml
- [bd4fada](http://github.com/phpstan/phpstan-strict-rules/commit/bd4fadabd09c2a52cef6c891a7580aff7bdb5ed8) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x
- [c7b4d28](http://github.com/phpstan/phpstan-strict-rules/commit/c7b4d283fbffd23b9405c01d1f68124739d698f6) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x
- [1a51fae](http://github.com/phpstan/phpstan-strict-rules/commit/1a51fae7892bf7488cc7edf106ad579235bf53a0) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x
- [b5233d5](http://github.com/phpstan/phpstan-strict-rules/commit/b5233d58637aadee4428961365196b205b557844) - Fix build
- [d0dc2f0](http://github.com/phpstan/phpstan-strict-rules/commit/d0dc2f0a6caf4ca2fcb837fb071e7452759a4847) - Update README.md
- [85fdc50](http://github.com/phpstan/phpstan-strict-rules/commit/85fdc5057e6876961d98e61fb2ff262f9f2fc7c2) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x
- [3d0ba5f](http://github.com/phpstan/phpstan-strict-rules/commit/3d0ba5fb982c5a7156c1827ba07d709bae0be82e) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x
- [3d33475](http://github.com/phpstan/phpstan-strict-rules/commit/3d334752d850a010738d37498cce439b6fb76ff3) - Fix UselessCastRuleTest.
- [2bc3967](http://github.com/phpstan/phpstan-strict-rules/commit/2bc39672669f0493b3b3833f13273cbedaaa121b) - Update metcalfc/changelog-generator action to v4.3.1
- [5981dc4](http://github.com/phpstan/phpstan-strict-rules/commit/5981dc4b8dcc011cd1ca82b925c071f1e5190853) - Update cbrgm/mastodon-github-action action to v2
- [2090cfc](http://github.com/phpstan/phpstan-strict-rules/commit/2090cfca49793b876887695f3293062070abc83c) - Update metcalfc/changelog-generator action to v4.2.0
- [1b125fb](http://github.com/phpstan/phpstan-strict-rules/commit/1b125fb195e726c88dc0cf29d83272d5f4747c8d) - Update dessant/lock-threads action to v5
- [a3b0404](http://github.com/phpstan/phpstan-strict-rules/commit/a3b0404c40197996b6ed32b2613e5a337fcbefd4) - Merge branch '1.5.x' into 1.6.x
- [3a67365](http://github.com/phpstan/phpstan-strict-rules/commit/3a673655738d62a3978c1c9d0a07bbc488fcade1) - Merge branch '1.5.x' into 1.6.x
- [50aab8d](http://github.com/phpstan/phpstan-strict-rules/commit/50aab8dc2b2d68f43e2231133322221e697d4dd3) - Open 1.6.x-dev
- [aeaa022](http://github.com/phpstan/phpstan-strict-rules/commit/aeaa0229d0a25051f0aad40164571f7beaf58924) - Update actions/checkout action to v4
- [b7edb14](http://github.com/phpstan/phpstan-strict-rules/commit/b7edb14296bae350401afef889c0243958174975) - Rename abstract OperandInArithmeticIncrementOrDecrementRuleTest
- [88e714c](http://github.com/phpstan/phpstan-strict-rules/commit/88e714c05658eb18a45ab6a6f4d17a29d44cc065) - BooleanInBooleanAndRule, BooleanInBooleanOrRule - different identifier and description for logical operators
- [477f53a](http://github.com/phpstan/phpstan-strict-rules/commit/477f53a560823cef4751429d91d62630ce265992) - Error identifiers
- [872bc91](http://github.com/phpstan/phpstan-strict-rules/commit/872bc91400552a0aa55e6a297261d24eb4d46ebb) - Removed some errors from RequireParentConstructCallRule - already reported by PHPStan core
- [bd3aa8b](http://github.com/phpstan/phpstan-strict-rules/commit/bd3aa8b9744ed1fd5cd33b1b52bbde56667ad7a3) - Modernized rules with generics and RuleErrorBuilder
- [cca41e8](http://github.com/phpstan/phpstan-strict-rules/commit/cca41e8ff93430a443e622a0c15c9f1f01aaac69) - Require PHPStan 1.11
- [5c143aa](http://github.com/phpstan/phpstan-strict-rules/commit/5c143aa605bbf392a90630773618eeaeeac7a49b) - Next-gen coding standard workflow
- [a1891b4](http://github.com/phpstan/phpstan-strict-rules/commit/a1891b44eb815e5ef1011faed44ce9dcc15ed630) - Update dependency slevomat/coding-standard to v8.12.0
- [fa91928](http://github.com/phpstan/phpstan-strict-rules/commit/fa91928228e1d487888aac7431d8806fcdfa81c4) - Update dependency slevomat/coding-standard to v8.11.1
- [1b9b85f](http://github.com/phpstan/phpstan-strict-rules/commit/1b9b85fe937333254e53bb873ecd3f868afd83db) - Update dependency slevomat/coding-standard to v8.11.0
- [35fda6c](http://github.com/phpstan/phpstan-strict-rules/commit/35fda6c8ceaac95b64b13559c15da11882ad7000) - Update dependency slevomat/coding-standard to v8.10.0
- [ce264e3](http://github.com/phpstan/phpstan-strict-rules/commit/ce264e3ad64b0c1d39afdbc73fc3f02c9a4b01b2) - Update build-cs
Configuration
๐ Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
๐ฆ Automerge: Enabled.
โป 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:
1.10.67
->1.11.1
1.3.16
->1.4.0
1.5.5
->1.6.0
Release Notes
phpstan/phpstan (phpstan/phpstan)
### [`v1.11.1`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.1) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.11.0...1.11.1) # Improvements ๐ง - Support integer ranges in `sprintf()` constant result inference ([#3075](https://togithub.com/phpstan/phpstan-src/pull/3075)), thanks [@staabm](https://togithub.com/staabm)! # Bugfixes ๐ - Do not complain about `impure(Function|Method).pure` if it has `@phpstan-assert` tags (https://github.com/phpstan/phpstan-src/commit/9544f8a6b52dbd6068800bbfc5bdaf67fe04a8c2) - Remove tip about deprecated config option (https://github.com/phpstan/phpstan-src/commit/d603c7b676e3b91f4b7ba81d46aee3e9a593f883), [#11000](https://togithub.com/phpstan/phpstan/issues/11000) - Fix false positive with `reportPossiblyNonexistentConstantArrayOffset: true` (https://github.com/phpstan/phpstan-src/commit/5277630459518024b16272bf6b6fd216eb3d10ed), [#10997](https://togithub.com/phpstan/phpstan/issues/10997) - Fix parent keyword case sensitivity ([#3064](https://togithub.com/phpstan/phpstan-src/pull/3064)), thanks [@staabm](https://togithub.com/staabm)! - InlineHTML is an impure point ([#3072](https://togithub.com/phpstan/phpstan-src/pull/3072)), thanks [@staabm](https://togithub.com/staabm)! - UnionTypeHelper - prevent infinite recursion (https://github.com/phpstan/phpstan-src/commit/bb3da26d562727c3122a344622059ded2239d6ab), [#11027](https://togithub.com/phpstan/phpstan/issues/11027) - Fix more potential for infinite recursion (https://github.com/phpstan/phpstan-src/commit/1d02c4f27684644e8361cf2a2bc5713adef9b95e) - RangeFunctionReturnTypeExtension - fix internal ValueError (https://github.com/phpstan/phpstan-src/commit/fe3895ada98940d1a71c2eb115d61afda9fd7a2c), [#11026](https://togithub.com/phpstan/phpstan/issues/11026) - Property unset is an impure point (https://github.com/phpstan/phpstan-src/commit/702ddcd7805ba08c0765bdf0930beaef0e6b4fc1), [#11001](https://togithub.com/phpstan/phpstan/issues/11001) - Fix property assign not being an impure point in arrow function (https://github.com/phpstan/phpstan-src/commit/35ff6895f48b74e8bc0dda7ec94c40e73c84099b), [#11001](https://togithub.com/phpstan/phpstan/issues/11001) - Fix internal error when accessing enum case by class-string (https://github.com/phpstan/phpstan-src/commit/1116e03389f0f47297c2638b5b67c84f4d339478), [#10985](https://togithub.com/phpstan/phpstan/issues/10985) - Fix resolving `self` and `static` in `@phpstan-closure-this` from trait stub file (https://github.com/phpstan/phpstan-src/commit/93402494ee92dd2e7264f112105151586203e0ec), [#11009](https://togithub.com/phpstan/phpstan/issues/11009) - CallToMethodStatementWithoutImpurePointsRule - fix for methods called on unions (https://github.com/phpstan/phpstan-src/commit/ee33f1e48b5ae9d6e99500814c186cd31e7a764f), [#11011](https://togithub.com/phpstan/phpstan/issues/11011) # Function signature fixes ๐ค - Offset `uri` in `stream_get_meta_data` calls is always present on PHP 8.3+ (https://github.com/phpstan/phpstan-src/commit/885d46bc8d7555a8b762914821ad2f0f5871e517), [#11024](https://togithub.com/phpstan/phpstan/issues/11024), [#10999](https://togithub.com/phpstan/phpstan/issues/10999) ### [`v1.11.0`](https://togithub.com/phpstan/phpstan/releases/tag/1.11.0) [Compare Source](https://togithub.com/phpstan/phpstan/compare/1.10.67...1.11.0) [**Read the article about PHPStan 1.11 on phpstan.org ยป**](https://phpstan.org/blog/phpstan-1-11-errors-identifiers-phpstan-pro-reboot) # Major new features ๐ - **Error identifiers** - A way to categorize reported errors by a stable identifier. Up until now you had to use specific and ever-changing error messages - Can be used for [ignoring specific errors locally](https://phpstan.org/user-guide/ignoring-errors#ignoring-in-code-using-phpdocs) with new `@phpstan-ignore` comment (uses current or next line automatically) - Can be used for [ignoring specific errors in `ignoreErrors`](https://phpstan.org/user-guide/ignoring-errors#ignoring-in-configuration-file) section of your configuration file (phpstan.neon) - Can be used in [output formatters](https://phpstan.org/user-guide/output-format) - Can be seen in PHPStan Pro GUI or in TableErrorFormatter with `-v` - Catalogue with source code links: https://phpstan.org/error-identifiers - **PHPStan Pro Reboot** - A new migration wizard will effortlessly migrate all your `@phpstan-ignore-line` and `@phpstan-ignore-next-line` to the new `@phpstan-ignore` comment style with error identifiers. The old comment style is dangerous because it ignores all errors, current and future, on that line. - Revamped UI for much more comfortable viewing and browsing of reported errors - The new UI also lets you **browse ignored errors**, from `ignoreErrors`, from your baseline and also ignored locally in source code using comments - Streaming errors during launch: You don't have to wait for the analysis to complete, you can see errors as they come in during the analysis - Support for mapping file paths to the host filesystem when running in Docker or remotely - Try it out by running PHPStan with `--pro` CLI option - PHPDoc tags describing callable lifecycle: `@param-immediately-invoked-callable`, `@param-later-invoked-callable` - Useful for exception analysis (https://phpstan.org/blog/bring-your-exceptions-under-control) and `@phpstan-pure` - PHPDoc tag `@param-closure-this` to describe what `$this` is bound to in a passed closure - Two new config options around stricter offset checks in arrays ([#3028](https://togithub.com/phpstan/phpstan-src/pull/3028)), [#7553](https://togithub.com/phpstan/phpstan/issues/7553), thanks [@ttomdewit](https://togithub.com/ttomdewit)! - `reportPossiblyNonexistentGeneralArrayOffset` - `reportPossiblyNonexistentConstantArrayOffset` - [Learn more in the documentation](https://phpstan.org/config-reference#reportpossiblynonexistentgeneralarrayoffset) # Bleeding edge ๐ช - Checking truthiness of `@phpstan-pure` above functions and methods - Check `new`/function call/method call/static method call on a separate line without any side effects even without `@phpstan-pure` PHPDoc tag on the declaration side - https://github.com/phpstan/phpstan-src/commit/281a87d1ab61809076ecfa6dfc2cc86e3babe235 - [#3020](https://togithub.com/phpstan/phpstan-src/pull/3020), thanks [@staabm](https://togithub.com/staabm)! - [#3022](https://togithub.com/phpstan/phpstan-src/pull/3022), thanks [@staabm](https://togithub.com/staabm)! - [#3023](https://togithub.com/phpstan/phpstan-src/pull/3023), thanks [@staabm](https://togithub.com/staabm)! - BetterNoopRule - take advantage of impure points (https://github.com/phpstan/phpstan-src/commit/a6470521b65d7424f552633c1f3827704c6262c3), [#10389](https://togithub.com/phpstan/phpstan/issues/10389) - Run missing type check on `@param-out` (https://github.com/phpstan/phpstan-src/commit/56b20024386d983927c64dfa895ff026bed2798c) - CallToConstructorStatementWithoutSideEffectsRule - report class with no constructor (https://github.com/phpstan/phpstan-src/commit/b116d25a6e4ba6c09f59af6569d9e6f6fd20aff4) - Deprecated: returning plain strings as errors, use RuleErrorBuilder - Learn more: [Using RuleErrorBuilder to enrich reported errors in custom rules](https://phpstan.org/blog/using-rule-error-builder) - Deprecated: returning RuleError without identifier (https://github.com/phpstan/phpstan-src/commit/969e6fa31d5484d42dab902703cfc6820a983cfd) *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 ๐ง - Generic RuleErrorBuilder (https://github.com/phpstan/phpstan-src/commit/9a3ed85178097e2d74f27623dd02bdd72c571e5b) - Deprecate `checkMissingIterableValueType: false` and `checkGenericClassInNonGenericObjectType: false` in favour of ignoring via identifiers (https://github.com/phpstan/phpstan-src/commit/a64998108b318581b0203e84582711c3e4d1e43c) - Deprecate old NoopRule - replaced by BetterNoopRule in bleeding edge (https://github.com/phpstan/phpstan-src/commit/109083571de6102cb854b9975c1463551ef678d0) - Allow ignoring errors from CollectedDataNode with local comments (https://github.com/phpstan/phpstan-src/commit/dc3b75ab4a2acd863405416620240302b284973a) - Introduce `new` type ([#3050](https://togithub.com/phpstan/phpstan-src/pull/3050)), [#9704](https://togithub.com/phpstan/phpstan/issues/9704), thanks [@ruudk](https://togithub.com/ruudk)! - RuleTestCase - fail on PHP warnings, notices etc. ([#3030](https://togithub.com/phpstan/phpstan-src/pull/3030)), thanks [@janedbal](https://togithub.com/janedbal)! - Check duplicate assignment of redeclared promoted readonly properties ([#3049](https://togithub.com/phpstan/phpstan-src/pull/3049)), [#8101](https://togithub.com/phpstan/phpstan/issues/8101), [#9863](https://togithub.com/phpstan/phpstan/issues/9863), [#9864](https://togithub.com/phpstan/phpstan/issues/9864), thanks [@schlndh](https://togithub.com/schlndh)! - Remove line from "nikic/php-parser" error message ([#2845](https://togithub.com/phpstan/phpstan-src/pull/2845)), thanks [@mvorisek](https://togithub.com/mvorisek)! - Stub validator - PHPStan classes are known without extra stubs (https://github.com/phpstan/phpstan-src/commit/d004c239677fb7abe41aa16e8e1b45bfac63f773) - Stub validator - PhpParser classes are known without extra stubs (https://github.com/phpstan/phpstan-src/commit/3e498e1592221f3a01527c10318424014d52f85d) - CheckstyleErrorFormatter - include error identifier in source attribute (https://github.com/phpstan/phpstan-src/commit/f66cf5badd2c98317d1d296ba24c3be77efcda18), [#1205](https://togithub.com/phpstan/phpstan/issues/1205) - BaselinePhpErrorFormatter - error identifiers in comments (https://github.com/phpstan/phpstan-src/commit/4b32cac2d1b98c6af65c07041fdbc64e5d3f3baf) - `RuleErrorBuilder::file()` - file path needs to exist (https://github.com/phpstan/phpstan-src/commit/c453f29f60992167a5aa46d4926c18a420ae7b26) - AbstractMethodInNonAbstractClassRule - better error message for enums (https://github.com/phpstan/phpstan-src/commit/b5dd34e492b03566458e98b314c6852cfd683916) - Fixed Xdebug spelling ([#2746](https://togithub.com/phpstan/phpstan-src/pull/2746)), thanks [@derickr](https://togithub.com/derickr)! - Track invalidated `$this` and used variables after invoking closure ([#2980](https://togithub.com/phpstan/phpstan-src/pull/2980)) - Support `@phan-` prefixes on recognized PHPDoc tags ([#3000](https://togithub.com/phpstan/phpstan-src/pull/3000)), thanks [@anomiex](https://togithub.com/anomiex)! - `pure-callable` and `pure-Closure` PHPDoc types (https://github.com/phpstan/phpstan-src/commit/cdaff5f00d621c3a94e048b8bd9fa864d47b3228) - `highlight_string()` flips side-effects depending on $return ([#3021](https://togithub.com/phpstan/phpstan-src/pull/3021)), thanks [@staabm](https://togithub.com/staabm)! - Improve types for predefined constants ([#3054](https://togithub.com/phpstan/phpstan-src/pull/3054)), thanks [@zonuexe](https://togithub.com/zonuexe)! # Bugfixes ๐ - Make `AccessoryNonFalsyStringType::toInteger()` return `IntegerType` instead of non-zero ([#3018](https://togithub.com/phpstan/phpstan-src/pull/3018)), [#10893](https://togithub.com/phpstan/phpstan/issues/10893), thanks [@zonuexe](https://togithub.com/zonuexe)! - Filter scope by non-empty array after foreach regardless of `polluteScopeWithAlwaysIterableForeach` ([#3029](https://togithub.com/phpstan/phpstan-src/pull/3029)), [#10922](https://togithub.com/phpstan/phpstan/issues/10922), thanks [@VincentLanglet](https://togithub.com/VincentLanglet)! - Preserve large arrays with same keys through union ([#3032](https://togithub.com/phpstan/phpstan-src/pull/3032)), [#9397](https://togithub.com/phpstan/phpstan/issues/9397), [#10080](https://togithub.com/phpstan/phpstan/issues/10080), thanks [@schlndh](https://togithub.com/schlndh)! - Fix `count($x) > $n === true` negation ([#3037](https://togithub.com/phpstan/phpstan-src/pull/3037)), [#10952](https://togithub.com/phpstan/phpstan/issues/10952), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)! - Fix NAN not accepting NAN ([#3036](https://togithub.com/phpstan/phpstan-src/pull/3036)), [#10956](https://togithub.com/phpstan/phpstan/issues/10956), [#10297](https://togithub.com/phpstan/phpstan/issues/10297), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)! - DateTimeInstantiationRule - fix error message for `new` with wrong name case (https://github.com/phpstan/phpstan-src/commit/59ac31a554203a7ae3fb9449bbd5b61f3afe2e20) - Process ConstFetch (https://github.com/phpstan/phpstan-src/commit/b5c63c296783bd067b14bad410dab2b87a1b7b3c) - Fix `preg_match_all` behaviour with no flags (https://github.com/phpstan/phpstan-src/commit/a856ec7ab5540cb4a8d30e9e170958a32a7165b2) - `file_get_contents` is an impure function (https://github.com/phpstan/phpstan-src/commit/2b5b3174c7f00e56b7692b4c26552b2ad13c73d5) - Fix `ClosureType::equals()` (https://github.com/phpstan/phpstan-src/commit/29c35b584a948e9a3c90e2d56312069ce073e6e6) - Use statement result of analysed anonymous class to inform about throw points and impure points (https://github.com/phpstan/phpstan-src/commit/70a75f68896e5f7eaa988c0cb7f20dad32c3c172) - Filter out implicit throw points from callables when `exceptions.implicitThrows: false` ([#3016](https://togithub.com/phpstan/phpstan-src/pull/3016)), thanks [@janedbal](https://togithub.com/janedbal)! - Fix `ConstantArrayType::hasOffsetValueType()` for offset union type where all types are valid (https://github.com/phpstan/phpstan-src/commit/26e949b0d093751c98e9a106f680092abf3b28d9) - `non-empty-list` always has offset 0 (https://github.com/phpstan/phpstan-src/commit/f4d1d481472b45c56ba2cd49ae98065092217f36) - Narrow to `non-empty-string`/`non-falsey-string` after `mb_strlen()` ([#3038](https://togithub.com/phpstan/phpstan-src/pull/3038)), thanks [@staabm](https://togithub.com/staabm)! - Implement `Type::isOffsetAccessLegal()` to detect offset access that crashes even in `isset()` ([#3045](https://togithub.com/phpstan/phpstan-src/pull/3045)), [#8393](https://togithub.com/phpstan/phpstan/issues/8393), [#10926](https://togithub.com/phpstan/phpstan/issues/10926), thanks [@rajyan](https://togithub.com/rajyan)! - Specify types on `match()` condition correctly ([#3053](https://togithub.com/phpstan/phpstan-src/pull/3053)), [#10974](https://togithub.com/phpstan/phpstan/issues/10974), [#9694](https://togithub.com/phpstan/phpstan/issues/9694), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)! - `json_decode` with force array flag: subtract all objects, not just stdClass ([#3052](https://togithub.com/phpstan/phpstan-src/pull/3052)), thanks [@rajyan](https://togithub.com/rajyan)! - Fix `strlen($x) > $n === true` negation ([#3040](https://togithub.com/phpstan/phpstan-src/pull/3040)), thanks [@staabm](https://togithub.com/staabm)! - Support multi-byte string function variants ([#3039](https://togithub.com/phpstan/phpstan-src/pull/3039)), thanks [@staabm](https://togithub.com/staabm)! - Final scope from `Continue_` points should not be used for `while (true)` ([#3057](https://togithub.com/phpstan/phpstan-src/pull/3057)), [#10980](https://togithub.com/phpstan/phpstan/issues/10980), thanks [@greew](https://togithub.com/greew)! - Fix enum performance problem ([#3062](https://togithub.com/phpstan/phpstan-src/pull/3062), [#3060](https://togithub.com/phpstan/phpstan-src/pull/3060)), [#10979](https://togithub.com/phpstan/phpstan/issues/10979), thanks [@staabm](https://togithub.com/staabm)! - NULL and null as a property default value are treated differently when overriding a parent property ([#3063](https://togithub.com/phpstan/phpstan-src/pull/3063)), [#10987](https://togithub.com/phpstan/phpstan/issues/10987), thanks [@staabm](https://togithub.com/staabm)! # Function signature fixes ๐ค - Make the url key of metadata returned by `stream_get_meta_data()` optional ([#3024](https://togithub.com/phpstan/phpstan-src/pull/3024)), [#10887](https://togithub.com/phpstan/phpstan/issues/10887), thanks [@hirokinoue](https://togithub.com/hirokinoue)! - Narrow `Closure::bind` `$newScope` param ([#2817](https://togithub.com/phpstan/phpstan-src/pull/2817)), thanks [@mvorisek](https://togithub.com/mvorisek)! - Infer object type mysqli_fetch_object ([#2675](https://togithub.com/phpstan/phpstan/issues/2675)) ([#2675](https://togithub.com/phpstan/phpstan-src/pull/2675)), thanks [@staabm](https://togithub.com/staabm)! - Fix `Imagick::identifyImage()` return type ([#3017](https://togithub.com/phpstan/phpstan-src/pull/3017)), thanks [@SVillette](https://togithub.com/SVillette)! # Internals ๐ - Clean up old identifiers and metadata (https://github.com/phpstan/phpstan-src/commit/c476a8611d06ed5ce850ba74bd087ed0fa9304ad) - Delete StatementOrderVisitor that is no longer needed (https://github.com/phpstan/phpstan-src/commit/017d321f47b2a49c11b0337a920235b0770da164) - Introduce `ClassReflection::getClassTypeDescription()` (https://github.com/phpstan/phpstan-src/commit/dec9e435a7e0cea96079eb08c799df6b49b92e82) - Fix classname typo in tests ([#2461](https://togithub.com/phpstan/phpstan-src/pull/2461)), thanks [@szepeviktor](https://togithub.com/szepeviktor)! - Fix various typos ([#2463](https://togithub.com/phpstan/phpstan-src/pull/2463)), thanks [@szepeviktor](https://togithub.com/szepeviktor)! - Added text regarding patch issues during installation ([#2670](https://togithub.com/phpstan/phpstan-src/pull/2670)), thanks [@mt-satak](https://togithub.com/mt-satak)! - Fix typo in ArgumentsNormalizer ([#2705](https://togithub.com/phpstan/phpstan-src/pull/2705)), thanks [@mad-briller](https://togithub.com/mad-briller)! - Rich PHPDoc for ExceptionTypeResolver (https://github.com/phpstan/phpstan-src/commit/e7ab4f741c0ec22cf70457c7a542b7978202b10a) - Hide internal commands ([#2833](https://togithub.com/phpstan/phpstan-src/pull/2833)), thanks [@rvanvelzen](https://togithub.com/rvanvelzen)! - Test invalidated object in static closure ([#2981](https://togithub.com/phpstan/phpstan-src/pull/2981)), thanks [@staabm](https://togithub.com/staabm)! - PHPDoc: address multiple variables defined in one [@param](https://togithub.com/param) ([#3001](https://togithub.com/phpstan/phpstan-src/pull/3001)), thanks [@Muqsit](https://togithub.com/Muqsit)! - Do not assume every contributor uses PhpStorm (https://github.com/phpstan/phpstan-src/commit/d1834e69d06e0f85a45db8f5fb7a2c5a6ce898b6) - TypeInferenceTestCase: ability to disable implicit throws ([#3015](https://togithub.com/phpstan/phpstan-src/pull/3015)), thanks [@janedbal](https://togithub.com/janedbal)! - Slightly reduce comparing and calling methods for trivial optimizations ([#3004](https://togithub.com/phpstan/phpstan-src/pull/3004)), [#10926](https://togithub.com/phpstan/phpstan/issues/10926), thanks [@zonuexe](https://togithub.com/zonuexe)! - AnalyserResultFinalizer - DRY of running CollectedDataNode rules (https://github.com/phpstan/phpstan-src/commit/38e2c96ee45733c8d3b44d048ce27a9b5450718e) - Introduce LocalIgnoresProcessor (https://github.com/phpstan/phpstan-src/commit/d026655260727c7c6e4cd69d50d57569e9128c13) - Introduce `RuleErrorBuilder::treatPhpDocTypesAsCertainTip()` for a bit more DRYness ([#3035](https://togithub.com/phpstan/phpstan-src/pull/3035)), thanks [@axlon](https://togithub.com/axlon)! - Make ResultCacheEndToEndTest pass level 9 ([#3055](https://togithub.com/phpstan/phpstan-src/pull/3055)), [#10977](https://togithub.com/phpstan/phpstan/issues/10977), thanks [@AJenbo](https://togithub.com/AJenbo)! - ClassReflection - cache enum cases (https://github.com/phpstan/phpstan-src/commit/39ce0425737cdbacfee5fbc08160d023cb5bc639), [#10979](https://togithub.com/phpstan/phpstan/issues/10979)phpstan/phpstan-phpunit (phpstan/phpstan-phpunit)
### [`v1.4.0`](https://togithub.com/phpstan/phpstan-phpunit/releases/tag/1.4.0) [Compare Source](https://togithub.com/phpstan/phpstan-phpunit/compare/1.3.16...1.4.0) - [f3ea021](http://github.com/phpstan/phpstan-phpunit/commit/f3ea021866f4263f07ca3636bf22c64be9610c11) - Update lock-closed-issues.yml - [f93aec7](http://github.com/phpstan/phpstan-phpunit/commit/f93aec74624bcdb9773da40a729f111df1f6e22a) - Merge remote-tracking branch 'origin/1.3.x' into 1.4.x - [77bdf96](http://github.com/phpstan/phpstan-phpunit/commit/77bdf9644e105833f810eefc3d6e051ac33dd939) - Update metcalfc/changelog-generator action to v4.3.1 - [6a1df9a](http://github.com/phpstan/phpstan-phpunit/commit/6a1df9a11edc5642f4a3b462fd1bcb7b07bafa35) - Update cbrgm/mastodon-github-action action to v2 - [e95a58b](http://github.com/phpstan/phpstan-phpunit/commit/e95a58baebb1f2daf7067c3667bff371b202151d) - Update metcalfc/changelog-generator action to v4.2.0 - [77345df](http://github.com/phpstan/phpstan-phpunit/commit/77345df14f04d05252c8b13a5b4444eacd6a0764) - Update dessant/lock-threads action to v5 - [99bb21e](http://github.com/phpstan/phpstan-phpunit/commit/99bb21e6ead1df1c6b9ec2b5750804a00aa6fb08) - Merge branch '1.3.x' into 1.4.x - [ac8ea99](http://github.com/phpstan/phpstan-phpunit/commit/ac8ea9981675cb991b7bbcde55add4b73dc7c690) - Update actions/checkout action to v4 - [529f300](http://github.com/phpstan/phpstan-phpunit/commit/529f300b5bf38a5ca83617b162ffd58c8c6f5647) - Merge branch '1.3.x' into 1.4.x - [62e883e](http://github.com/phpstan/phpstan-phpunit/commit/62e883ea3762a31faa4f6609c20fb1363762d4e3) - Open 1.4.x-dev - [97ec1d3](http://github.com/phpstan/phpstan-phpunit/commit/97ec1d34e9eb2669df4de20e0eb9d6a99f92b4d6) - Merge branch '1.3.x' into 1.4.x - [4d99a7d](http://github.com/phpstan/phpstan-phpunit/commit/4d99a7d020727a2c7b4b428aecbe6a0171bb78a5) - Require PHPStan 1.11 - [908e232](http://github.com/phpstan/phpstan-phpunit/commit/908e232dab1297e5ad6e492b5dfa2d828727915d) - Error identifiersphpstan/phpstan-strict-rules (phpstan/phpstan-strict-rules)
### [`v1.6.0`](https://togithub.com/phpstan/phpstan-strict-rules/releases/tag/1.6.0) [Compare Source](https://togithub.com/phpstan/phpstan-strict-rules/compare/1.5.5...1.6.0) - [363f921](http://github.com/phpstan/phpstan-strict-rules/commit/363f921dd8441777d4fc137deb99beb486c77df1) - Update lock-closed-issues.yml - [bd4fada](http://github.com/phpstan/phpstan-strict-rules/commit/bd4fadabd09c2a52cef6c891a7580aff7bdb5ed8) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x - [c7b4d28](http://github.com/phpstan/phpstan-strict-rules/commit/c7b4d283fbffd23b9405c01d1f68124739d698f6) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x - [1a51fae](http://github.com/phpstan/phpstan-strict-rules/commit/1a51fae7892bf7488cc7edf106ad579235bf53a0) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x - [b5233d5](http://github.com/phpstan/phpstan-strict-rules/commit/b5233d58637aadee4428961365196b205b557844) - Fix build - [d0dc2f0](http://github.com/phpstan/phpstan-strict-rules/commit/d0dc2f0a6caf4ca2fcb837fb071e7452759a4847) - Update README.md - [85fdc50](http://github.com/phpstan/phpstan-strict-rules/commit/85fdc5057e6876961d98e61fb2ff262f9f2fc7c2) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x - [3d0ba5f](http://github.com/phpstan/phpstan-strict-rules/commit/3d0ba5fb982c5a7156c1827ba07d709bae0be82e) - Merge remote-tracking branch 'origin/1.5.x' into 1.6.x - [3d33475](http://github.com/phpstan/phpstan-strict-rules/commit/3d334752d850a010738d37498cce439b6fb76ff3) - Fix UselessCastRuleTest. - [2bc3967](http://github.com/phpstan/phpstan-strict-rules/commit/2bc39672669f0493b3b3833f13273cbedaaa121b) - Update metcalfc/changelog-generator action to v4.3.1 - [5981dc4](http://github.com/phpstan/phpstan-strict-rules/commit/5981dc4b8dcc011cd1ca82b925c071f1e5190853) - Update cbrgm/mastodon-github-action action to v2 - [2090cfc](http://github.com/phpstan/phpstan-strict-rules/commit/2090cfca49793b876887695f3293062070abc83c) - Update metcalfc/changelog-generator action to v4.2.0 - [1b125fb](http://github.com/phpstan/phpstan-strict-rules/commit/1b125fb195e726c88dc0cf29d83272d5f4747c8d) - Update dessant/lock-threads action to v5 - [a3b0404](http://github.com/phpstan/phpstan-strict-rules/commit/a3b0404c40197996b6ed32b2613e5a337fcbefd4) - Merge branch '1.5.x' into 1.6.x - [3a67365](http://github.com/phpstan/phpstan-strict-rules/commit/3a673655738d62a3978c1c9d0a07bbc488fcade1) - Merge branch '1.5.x' into 1.6.x - [50aab8d](http://github.com/phpstan/phpstan-strict-rules/commit/50aab8dc2b2d68f43e2231133322221e697d4dd3) - Open 1.6.x-dev - [aeaa022](http://github.com/phpstan/phpstan-strict-rules/commit/aeaa0229d0a25051f0aad40164571f7beaf58924) - Update actions/checkout action to v4 - [b7edb14](http://github.com/phpstan/phpstan-strict-rules/commit/b7edb14296bae350401afef889c0243958174975) - Rename abstract OperandInArithmeticIncrementOrDecrementRuleTest - [88e714c](http://github.com/phpstan/phpstan-strict-rules/commit/88e714c05658eb18a45ab6a6f4d17a29d44cc065) - BooleanInBooleanAndRule, BooleanInBooleanOrRule - different identifier and description for logical operators - [477f53a](http://github.com/phpstan/phpstan-strict-rules/commit/477f53a560823cef4751429d91d62630ce265992) - Error identifiers - [872bc91](http://github.com/phpstan/phpstan-strict-rules/commit/872bc91400552a0aa55e6a297261d24eb4d46ebb) - Removed some errors from RequireParentConstructCallRule - already reported by PHPStan core - [bd3aa8b](http://github.com/phpstan/phpstan-strict-rules/commit/bd3aa8b9744ed1fd5cd33b1b52bbde56667ad7a3) - Modernized rules with generics and RuleErrorBuilder - [cca41e8](http://github.com/phpstan/phpstan-strict-rules/commit/cca41e8ff93430a443e622a0c15c9f1f01aaac69) - Require PHPStan 1.11 - [5c143aa](http://github.com/phpstan/phpstan-strict-rules/commit/5c143aa605bbf392a90630773618eeaeeac7a49b) - Next-gen coding standard workflow - [a1891b4](http://github.com/phpstan/phpstan-strict-rules/commit/a1891b44eb815e5ef1011faed44ce9dcc15ed630) - Update dependency slevomat/coding-standard to v8.12.0 - [fa91928](http://github.com/phpstan/phpstan-strict-rules/commit/fa91928228e1d487888aac7431d8806fcdfa81c4) - Update dependency slevomat/coding-standard to v8.11.1 - [1b9b85f](http://github.com/phpstan/phpstan-strict-rules/commit/1b9b85fe937333254e53bb873ecd3f868afd83db) - Update dependency slevomat/coding-standard to v8.11.0 - [35fda6c](http://github.com/phpstan/phpstan-strict-rules/commit/35fda6c8ceaac95b64b13559c15da11882ad7000) - Update dependency slevomat/coding-standard to v8.10.0 - [ce264e3](http://github.com/phpstan/phpstan-strict-rules/commit/ce264e3ad64b0c1d39afdbc73fc3f02c9a4b01b2) - Update build-csConfiguration
๐ Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
๐ฆ Automerge: Enabled.
โป 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.