-
Notifications
You must be signed in to change notification settings - Fork 660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow more callable types as subtypes of callable
#10805
Merged
weirdan
merged 2 commits into
vimeo:5.x
from
weirdan:10461-allow-more-callable-types-as-subtypes-of-callable
Mar 19, 2024
Merged
Allow more callable types as subtypes of callable
#10805
weirdan
merged 2 commits into
vimeo:5.x
from
weirdan:10461-allow-more-callable-types-as-subtypes-of-callable
Mar 19, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
weirdan
added
the
release:feature
The PR will be included in 'Features' section of the release notes
label
Mar 10, 2024
weirdan
force-pushed
the
10461-allow-more-callable-types-as-subtypes-of-callable
branch
from
March 10, 2024 21:23
fb8c1ac
to
20c7889
Compare
SCIF
reviewed
Mar 11, 2024
`TClosure` does not implement it at this point. It's intentional, to maintain the separation between callables and closures that our code relies on.
weirdan
force-pushed
the
10461-allow-more-callable-types-as-subtypes-of-callable
branch
from
March 12, 2024 11:58
01b84b9
to
c9468b6
Compare
weirdan
deleted the
10461-allow-more-callable-types-as-subtypes-of-callable
branch
March 19, 2024 23:17
Gashmob
referenced
this pull request
in Gashmob/project-templates
May 3, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [vimeo/psalm](https://github.com/vimeo/psalm) | `5.23.1` -> `5.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/vimeo%2fpsalm/5.23.1/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/vimeo%2fpsalm/5.23.1/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vimeo/psalm (vimeo/psalm)</summary> ### [`v5.24.0`](https://github.com/vimeo/psalm/releases/tag/5.24.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.23.1...5.24.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Allow specifying flags to Codebase::isTypeContainedByType by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10829](https://github.com/vimeo/psalm/pull/10829) - Allow more callable types as subtypes of `callable` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10805](https://github.com/vimeo/psalm/pull/10805) - Report `parent` being used in callable context when the class does not extend anything by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10838](https://github.com/vimeo/psalm/pull/10838) - Report error for additional deprecated arg types in PHP 8.1/8.3 by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10824](https://github.com/vimeo/psalm/pull/10824) - Add MissingClassConstType Issue by [@​jack-worman](https://github.com/jack-worman) in [https://github.com/vimeo/psalm/pull/10828](https://github.com/vimeo/psalm/pull/10828) - Enforce parameter names for consistent constructors by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10821](https://github.com/vimeo/psalm/pull/10821) - Add misc missing errors for invalid callable methods by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10839](https://github.com/vimeo/psalm/pull/10839) ##### Fixes - Forbid named arguments for ArrayAcccess methods by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10804](https://github.com/vimeo/psalm/pull/10804) - Don't crash on invalid templates by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10806](https://github.com/vimeo/psalm/pull/10806) - report error for single param name mismatch too since named args can even be used then by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10822](https://github.com/vimeo/psalm/pull/10822) - add support for named arguments for filter_var and filter_input by [@​pilif](https://github.com/pilif) in [https://github.com/vimeo/psalm/pull/10815](https://github.com/vimeo/psalm/pull/10815) - When inside isset, make array fetch result nullable by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10756](https://github.com/vimeo/psalm/pull/10756) - Promoted properties missing in extended \__construct should report PropertyNotSetInConstructor by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10817](https://github.com/vimeo/psalm/pull/10817) - Updating signature of `getmxrr()` by [@​ThomasLandauer](https://github.com/ThomasLandauer) in [https://github.com/vimeo/psalm/pull/10847](https://github.com/vimeo/psalm/pull/10847) - Improve string-int juggle consistency in array keys and display for int-like strings in type by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10814](https://github.com/vimeo/psalm/pull/10814) - Fix storage not available in thread for intersection doc types by [@​simonberger](https://github.com/simonberger) in [https://github.com/vimeo/psalm/pull/10856](https://github.com/vimeo/psalm/pull/10856) - Don't emit MissingOverrideAttribute for implicit Stringable implementations by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10858](https://github.com/vimeo/psalm/pull/10858) - Specify array return type of session_get_cookie_params by [@​jorgsowa](https://github.com/jorgsowa) in [https://github.com/vimeo/psalm/pull/10859](https://github.com/vimeo/psalm/pull/10859) - Unknown [@​psalm](https://github.com/psalm) annotation should not make whole docblock invalid by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10885](https://github.com/vimeo/psalm/pull/10885) - Add `mail` to impure functions list by [@​smaddock](https://github.com/smaddock) in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - Update PHP 8.2 Call map delta with refined types for string comparison functions by [@​gsteel](https://github.com/gsteel) in [https://github.com/vimeo/psalm/pull/10883](https://github.com/vimeo/psalm/pull/10883) ##### Docs - document that [@​psalm-internal](https://github.com/psalm-internal) works for namespace + class too by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10866](https://github.com/vimeo/psalm/pull/10866) ##### Internal changes - fix tests running with other than called PHP binary if called with a non-default PHP binary by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10842](https://github.com/vimeo/psalm/pull/10842) - Explicitly set value in config to fix warning in tests by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10843](https://github.com/vimeo/psalm/pull/10843) - \[PHP 8.4] Fixes for implicit nullability deprecation by [@​Ayesh](https://github.com/Ayesh) in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - Throw exception instead of silently logging issues occurred during scan by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10902](https://github.com/vimeo/psalm/pull/10902) ##### Other changes - Fix conditional on non empty literal string by [@​VincentLanglet](https://github.com/VincentLanglet) in [https://github.com/vimeo/psalm/pull/10912](https://github.com/vimeo/psalm/pull/10912) - Ignore jsonSerialize for implementors of JsonSerializable by [@​josephwynn-sc](https://github.com/josephwynn-sc) in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - Add XML functions to ImpureFunctionsList [#​10882](https://github.com/vimeo/psalm/issues/10882) by [@​DKhalil](https://github.com/DKhalil) in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) #### New Contributors - [@​Ayesh](https://github.com/Ayesh) made their first contribution in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - [@​smaddock](https://github.com/smaddock) made their first contribution in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - [@​josephwynn-sc](https://github.com/josephwynn-sc) made their first contribution in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - [@​DKhalil](https://github.com/DKhalil) made their first contribution in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) **Full Changelog**: vimeo/psalm@5.23.1...5.24.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Gashmob/project-templates). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
Can it be relevant that now the following code: ->controller([MetricsController::class, 'prometheus']) for final public function controller(callable|string|array $controller): static triggers
? Not reproducible on psalm.dev though |
tcarrio
referenced
this pull request
in open-feature/php-sdk
May 7, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [vimeo/psalm](https://github.com/vimeo/psalm) | `~5.17.0` -> `~5.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/vimeo%2fpsalm/5.17.0/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/vimeo%2fpsalm/5.17.0/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vimeo/psalm (vimeo/psalm)</summary> ### [`v5.24.0`](https://github.com/vimeo/psalm/releases/tag/5.24.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.23.1...5.24.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Allow specifying flags to Codebase::isTypeContainedByType by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10829](https://github.com/vimeo/psalm/pull/10829) - Allow more callable types as subtypes of `callable` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10805](https://github.com/vimeo/psalm/pull/10805) - Report `parent` being used in callable context when the class does not extend anything by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10838](https://github.com/vimeo/psalm/pull/10838) - Report error for additional deprecated arg types in PHP 8.1/8.3 by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10824](https://github.com/vimeo/psalm/pull/10824) - Add MissingClassConstType Issue by [@​jack-worman](https://github.com/jack-worman) in [https://github.com/vimeo/psalm/pull/10828](https://github.com/vimeo/psalm/pull/10828) - Enforce parameter names for consistent constructors by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10821](https://github.com/vimeo/psalm/pull/10821) - Add misc missing errors for invalid callable methods by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10839](https://github.com/vimeo/psalm/pull/10839) ##### Fixes - Forbid named arguments for ArrayAcccess methods by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10804](https://github.com/vimeo/psalm/pull/10804) - Don't crash on invalid templates by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10806](https://github.com/vimeo/psalm/pull/10806) - report error for single param name mismatch too since named args can even be used then by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10822](https://github.com/vimeo/psalm/pull/10822) - add support for named arguments for filter_var and filter_input by [@​pilif](https://github.com/pilif) in [https://github.com/vimeo/psalm/pull/10815](https://github.com/vimeo/psalm/pull/10815) - When inside isset, make array fetch result nullable by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10756](https://github.com/vimeo/psalm/pull/10756) - Promoted properties missing in extended \__construct should report PropertyNotSetInConstructor by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10817](https://github.com/vimeo/psalm/pull/10817) - Updating signature of `getmxrr()` by [@​ThomasLandauer](https://github.com/ThomasLandauer) in [https://github.com/vimeo/psalm/pull/10847](https://github.com/vimeo/psalm/pull/10847) - Improve string-int juggle consistency in array keys and display for int-like strings in type by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10814](https://github.com/vimeo/psalm/pull/10814) - Fix storage not available in thread for intersection doc types by [@​simonberger](https://github.com/simonberger) in [https://github.com/vimeo/psalm/pull/10856](https://github.com/vimeo/psalm/pull/10856) - Don't emit MissingOverrideAttribute for implicit Stringable implementations by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10858](https://github.com/vimeo/psalm/pull/10858) - Specify array return type of session_get_cookie_params by [@​jorgsowa](https://github.com/jorgsowa) in [https://github.com/vimeo/psalm/pull/10859](https://github.com/vimeo/psalm/pull/10859) - Unknown [@​psalm](https://github.com/psalm) annotation should not make whole docblock invalid by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10885](https://github.com/vimeo/psalm/pull/10885) - Add `mail` to impure functions list by [@​smaddock](https://github.com/smaddock) in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - Update PHP 8.2 Call map delta with refined types for string comparison functions by [@​gsteel](https://github.com/gsteel) in [https://github.com/vimeo/psalm/pull/10883](https://github.com/vimeo/psalm/pull/10883) ##### Docs - document that [@​psalm-internal](https://github.com/psalm-internal) works for namespace + class too by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10866](https://github.com/vimeo/psalm/pull/10866) ##### Internal changes - fix tests running with other than called PHP binary if called with a non-default PHP binary by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10842](https://github.com/vimeo/psalm/pull/10842) - Explicitly set value in config to fix warning in tests by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10843](https://github.com/vimeo/psalm/pull/10843) - \[PHP 8.4] Fixes for implicit nullability deprecation by [@​Ayesh](https://github.com/Ayesh) in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - Throw exception instead of silently logging issues occurred during scan by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10902](https://github.com/vimeo/psalm/pull/10902) ##### Other changes - Fix conditional on non empty literal string by [@​VincentLanglet](https://github.com/VincentLanglet) in [https://github.com/vimeo/psalm/pull/10912](https://github.com/vimeo/psalm/pull/10912) - Ignore jsonSerialize for implementors of JsonSerializable by [@​josephwynn-sc](https://github.com/josephwynn-sc) in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - Add XML functions to ImpureFunctionsList [#​10882](https://github.com/vimeo/psalm/issues/10882) by [@​DKhalil](https://github.com/DKhalil) in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) #### New Contributors - [@​Ayesh](https://github.com/Ayesh) made their first contribution in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - [@​smaddock](https://github.com/smaddock) made their first contribution in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - [@​josephwynn-sc](https://github.com/josephwynn-sc) made their first contribution in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - [@​DKhalil](https://github.com/DKhalil) made their first contribution in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) **Full Changelog**: vimeo/psalm@5.23.1...5.24.0 ### [`v5.23.1`](https://github.com/vimeo/psalm/releases/tag/5.23.1) [Compare Source](https://github.com/vimeo/psalm/compare/5.23.0...5.23.1) <!-- Release notes generated using configuration in .github/release.yml at 5.23.x --> #### What's Changed ##### Fixes - Fixed analysis of existing static methods if the `__callStatic()` method exists by [@​issidorov](https://github.com/issidorov) in [https://github.com/vimeo/psalm/pull/10812](https://github.com/vimeo/psalm/pull/10812) **Full Changelog**: vimeo/psalm@5.23.0...5.23.1 ### [`v5.23.0`](https://github.com/vimeo/psalm/releases/tag/5.23.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.22.2...5.23.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Update PHP 8.2 stubs to include `SensitiveParameterValue` by [@​gsteel](https://github.com/gsteel) in [https://github.com/vimeo/psalm/pull/10726](https://github.com/vimeo/psalm/pull/10726) - Add list of statements to BeforeFileAnalysisEvent by [@​ohader](https://github.com/ohader) in [https://github.com/vimeo/psalm/pull/10728](https://github.com/vimeo/psalm/pull/10728) - Forbid iterating over generators with non-nullable `send()` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10697](https://github.com/vimeo/psalm/pull/10697) - Initial support for named parameters for callables by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10772](https://github.com/vimeo/psalm/pull/10772) ##### Fixes - Improve randomizer stubs by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10709](https://github.com/vimeo/psalm/pull/10709) - Fix detecting magic static methods by [@​issidorov](https://github.com/issidorov) in [https://github.com/vimeo/psalm/pull/10704](https://github.com/vimeo/psalm/pull/10704) - Fix non-empty-lowercase-string handling with literal non-lowercase strings by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10722](https://github.com/vimeo/psalm/pull/10722) - Fix RiskyTruthyFalsyComparison irrelevant errors when there is no explicit truthy/falsy type by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10733](https://github.com/vimeo/psalm/pull/10733) - Allow `Override` attribute to be used in pure contexts by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10734](https://github.com/vimeo/psalm/pull/10734) - Revert "Allow tainted numerics except for 'html' and 'has_quotes'" by [@​ohader](https://github.com/ohader) in [https://github.com/vimeo/psalm/pull/10729](https://github.com/vimeo/psalm/pull/10729) - Fix loading stubs from phar file on Windows by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10748](https://github.com/vimeo/psalm/pull/10748) - Fix a false flag issue with InvalidConstantAssignmentValue by [@​MelechMizrachi](https://github.com/MelechMizrachi) in [https://github.com/vimeo/psalm/pull/10738](https://github.com/vimeo/psalm/pull/10738) - Set inside_isset false when analyzing ArrayDimFetch index by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10752](https://github.com/vimeo/psalm/pull/10752) - Set inside_isset = false when analyzing arguments by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10753](https://github.com/vimeo/psalm/pull/10753) - Fix PHP notice - crash on invalid taint-escape by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10760](https://github.com/vimeo/psalm/pull/10760) - Fix version comparison for `@since` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10764](https://github.com/vimeo/psalm/pull/10764) - Since annotations outside phpstub should not infer php version by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10769](https://github.com/vimeo/psalm/pull/10769) - Backport `WeakMap` iterator fix from `master` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10778](https://github.com/vimeo/psalm/pull/10778) - Namespace anonymous classes by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10779](https://github.com/vimeo/psalm/pull/10779) - Update CallMap for sqlsrv_connect and sqlsrv_errors to match reflection by [@​theodorejb](https://github.com/theodorejb) in [https://github.com/vimeo/psalm/pull/10781](https://github.com/vimeo/psalm/pull/10781) - `$resource` parameter of `mkdir()` is nullable since PHP 7.3 by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10802](https://github.com/vimeo/psalm/pull/10802) - Use wider class-string when combining class strings with intersections by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10800](https://github.com/vimeo/psalm/pull/10800) ##### Internal changes - Use TaintKind/TaintKindGroup constants instead of string values by [@​ohader](https://github.com/ohader) in [https://github.com/vimeo/psalm/pull/10746](https://github.com/vimeo/psalm/pull/10746) - Skip symlink test on Windows by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10749](https://github.com/vimeo/psalm/pull/10749) - Avoid duplicating code for RiskyTruthyFalsyComparison by [@​theodorejb](https://github.com/theodorejb) in [https://github.com/vimeo/psalm/pull/10765](https://github.com/vimeo/psalm/pull/10765) - fix PHP 8 tests running with wrong --php-version=/phpVersion= if not explicitly specified by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10776](https://github.com/vimeo/psalm/pull/10776) - CS fix by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10801](https://github.com/vimeo/psalm/pull/10801) #### New Contributors - [@​MelechMizrachi](https://github.com/MelechMizrachi) made their first contribution in [https://github.com/vimeo/psalm/pull/10738](https://github.com/vimeo/psalm/pull/10738) **Full Changelog**: vimeo/psalm@5.22.2...5.23.0 ### [`v5.22.2`](https://github.com/vimeo/psalm/releases/tag/5.22.2) [Compare Source](https://github.com/vimeo/psalm/compare/5.22.1...5.22.2) <!-- Release notes generated using configuration in .github/release.yml at 5.22.x --> #### What's Changed ##### Fixes - Catch missing classlike exceptions during scanning by [@​weirdan](https://github.com/weirdan) and [@​ohader](https://github.com/ohader) in [https://github.com/vimeo/psalm/pull/10720](https://github.com/vimeo/psalm/pull/10720) **Full Changelog**: vimeo/psalm@5.22.1...5.22.2 ### [`v5.22.1`](https://github.com/vimeo/psalm/releases/tag/5.22.1) [Compare Source](https://github.com/vimeo/psalm/compare/5.22.0...5.22.1) <!-- Release notes generated using configuration in .github/release.yml at 5.22.x --> #### What's Changed ##### Fixes - Improve parsing of `@psalm-type` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10713](https://github.com/vimeo/psalm/pull/10713) **Full Changelog**: vimeo/psalm@5.22.0...5.22.1 ### [`v5.22.0`](https://github.com/vimeo/psalm/releases/tag/5.22.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.21.1...5.22.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Allow inline comments in typedef shapes by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10623](https://github.com/vimeo/psalm/pull/10623) - allow typedef imports from any kind of classlike by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10625](https://github.com/vimeo/psalm/pull/10625) - Allow enum cases to be global constants by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10634](https://github.com/vimeo/psalm/pull/10634) - New InvalidOverride issue for Override attribute by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10644](https://github.com/vimeo/psalm/pull/10644) - Analyze dynamic names for static property and const fetches by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10629](https://github.com/vimeo/psalm/pull/10629) - New MissingOverrideAttribute issue by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10651](https://github.com/vimeo/psalm/pull/10651) - Flag `stdClass::__construct()` calls that have arguments by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10661](https://github.com/vimeo/psalm/pull/10661) - Improve Reflection stubs by [@​vudaltsov](https://github.com/vudaltsov) in [https://github.com/vimeo/psalm/pull/10091](https://github.com/vimeo/psalm/pull/10091) - Forbid constructors from returning any values by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10686](https://github.com/vimeo/psalm/pull/10686) - Report first class callables generated for unknown static methods by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10691](https://github.com/vimeo/psalm/pull/10691) - Process `@psalm-this-out` on `__construct()` as well by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10690](https://github.com/vimeo/psalm/pull/10690) - Report invalid number of arguments for psalm-taint-\* by [@​staabm](https://github.com/staabm) in [https://github.com/vimeo/psalm/pull/10699](https://github.com/vimeo/psalm/pull/10699) ##### Fixes - Fix ownerDocument type in dom-ext classes by [@​fluffycondor](https://github.com/fluffycondor) in [https://github.com/vimeo/psalm/pull/10619](https://github.com/vimeo/psalm/pull/10619) - Fix numeric scalar validate filter var input return type wrong by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10621](https://github.com/vimeo/psalm/pull/10621) - Stable baseline by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10633](https://github.com/vimeo/psalm/pull/10633) - Allow sebastian/diff v6 by [@​simPod](https://github.com/simPod) in [https://github.com/vimeo/psalm/pull/10639](https://github.com/vimeo/psalm/pull/10639) - CallMap: Adjust return type for `inotify_add_watch()` to `int|false` by [@​UlrichEckhardt](https://github.com/UlrichEckhardt) in [https://github.com/vimeo/psalm/pull/10637](https://github.com/vimeo/psalm/pull/10637) - Fix check-type when using builtin types from within a namespace by [@​robchett](https://github.com/robchett) in [https://github.com/vimeo/psalm/pull/10648](https://github.com/vimeo/psalm/pull/10648) - Do not add `callable` as a native property type by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10654](https://github.com/vimeo/psalm/pull/10654) - Fix additional places where base_dir was broken due to missing separator by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10630](https://github.com/vimeo/psalm/pull/10630) - Late binding of enum cases by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10655](https://github.com/vimeo/psalm/pull/10655) - Suppress `UndefinedClass` in `whatever_exists()` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10659](https://github.com/vimeo/psalm/pull/10659) - Fix parsing magic method annotations by [@​issidorov](https://github.com/issidorov) in [https://github.com/vimeo/psalm/pull/10665](https://github.com/vimeo/psalm/pull/10665) - Strip callmap prefixes from parameter names by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10666](https://github.com/vimeo/psalm/pull/10666) - Narrow `ord()` return type to `int<0,255>` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10676](https://github.com/vimeo/psalm/pull/10676) - Template union object incorrect assertions by [@​robchett](https://github.com/robchett) in [https://github.com/vimeo/psalm/pull/10677](https://github.com/vimeo/psalm/pull/10677) - Don't show backtrace in `InvalidDocblock` issue message by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10679](https://github.com/vimeo/psalm/pull/10679) - Class consts in array shapes by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10678](https://github.com/vimeo/psalm/pull/10678) - Prevent mixed|null by [@​robchett](https://github.com/robchett) in [https://github.com/vimeo/psalm/pull/10675](https://github.com/vimeo/psalm/pull/10675) ##### Internal changes - Drop unused local composer repo by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10647](https://github.com/vimeo/psalm/pull/10647) - Clarify that Pull request labels failure is to be resolved by maintainers by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10649](https://github.com/vimeo/psalm/pull/10649) - Fix unstable `hasFullyQualified(Interface|Enum)()` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10603](https://github.com/vimeo/psalm/pull/10603) - Revert partial mistakenly pushed fix by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10671](https://github.com/vimeo/psalm/pull/10671) **Full Changelog**: vimeo/psalm@5.21.1...5.22.0 ### [`v5.21.1`](https://github.com/vimeo/psalm/releases/tag/5.21.1) [Compare Source](https://github.com/vimeo/psalm/compare/5.21.0...5.21.1) <!-- Release notes generated using configuration in .github/release.yml at 5.21.x --> #### What's Changed ##### Fixes - Fix baseline loading for path specified on the command line by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10628](https://github.com/vimeo/psalm/pull/10628) **Full Changelog**: vimeo/psalm@5.21.0...5.21.1 ### [`v5.21.0`](https://github.com/vimeo/psalm/releases/tag/5.21.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.20.0...5.21.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Allow importing typedefs from enums by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10617](https://github.com/vimeo/psalm/pull/10617) ##### Fixes - Fix [#​10552](https://github.com/vimeo/psalm/issues/10552) by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10572](https://github.com/vimeo/psalm/pull/10572) - Unit test improvements for php-parser 5 by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10574](https://github.com/vimeo/psalm/pull/10574) - Fix template replacement edge case by [@​klimick](https://github.com/klimick) in [https://github.com/vimeo/psalm/pull/10586](https://github.com/vimeo/psalm/pull/10586) - Switch condition order by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10594](https://github.com/vimeo/psalm/pull/10594) - Partial revert "Fix auto completion by partial property or method" by [@​issidorov](https://github.com/issidorov) in [https://github.com/vimeo/psalm/pull/10588](https://github.com/vimeo/psalm/pull/10588) - \[LSP] Add issue type in description by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10607](https://github.com/vimeo/psalm/pull/10607) - Do not validate callable arguments in lenient contexts by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10601](https://github.com/vimeo/psalm/pull/10601) - `readgzfile()` is impure by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10600](https://github.com/vimeo/psalm/pull/10600) - Allow properties on intersections with enum interfaces by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10599](https://github.com/vimeo/psalm/pull/10599) - `key_exists()` is an alias for `array_key_exists()` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10598](https://github.com/vimeo/psalm/pull/10598) - Fix language server running with `opcache.save_comments=0` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10614](https://github.com/vimeo/psalm/pull/10614) - Report `MissingConstructor` for natively typed mixed properties by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10615](https://github.com/vimeo/psalm/pull/10615) ##### Internal changes - Bump actions/cache from 3 to 4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/vimeo/psalm/pull/10584](https://github.com/vimeo/psalm/pull/10584) - Baseline update by [@​jorgsowa](https://github.com/jorgsowa) in [https://github.com/vimeo/psalm/pull/10593](https://github.com/vimeo/psalm/pull/10593) - Re-work CheckTrivialExprVisitor by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10612](https://github.com/vimeo/psalm/pull/10612) - Minor php-parser tweaks by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10605](https://github.com/vimeo/psalm/pull/10605) #### New Contributors - [@​jorgsowa](https://github.com/jorgsowa) made their first contribution in [https://github.com/vimeo/psalm/pull/10593](https://github.com/vimeo/psalm/pull/10593) **Full Changelog**: vimeo/psalm@5.20.0...5.21.0 ### [`v5.20.0`](https://github.com/vimeo/psalm/releases/tag/5.20.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.19.1...5.20.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - report error for non-strict or empty comparison on truthy+falsy union by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10502](https://github.com/vimeo/psalm/pull/10502) ##### Fixes - Fix template, conditional array keys by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10568](https://github.com/vimeo/psalm/pull/10568) **Full Changelog**: vimeo/psalm@5.19.1...5.20.0 ### [`v5.19.1`](https://github.com/vimeo/psalm/releases/tag/5.19.1) [Compare Source](https://github.com/vimeo/psalm/compare/5.19.0...5.19.1) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Fixes - Deprecated Template Classes are not ignored by [@​psalm-suppress](https://github.com/psalm-suppress) DeprecatedClass by [@​samlitowitz](https://github.com/samlitowitz) in [https://github.com/vimeo/psalm/pull/10518](https://github.com/vimeo/psalm/pull/10518) - Implement \__set method in SimpleXMLElement stub by [@​kthaler](https://github.com/kthaler) in [https://github.com/vimeo/psalm/pull/10536](https://github.com/vimeo/psalm/pull/10536) - Make getrandmax type more specific and unserialize to require class-string by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10540](https://github.com/vimeo/psalm/pull/10540) - Fix mb_get_info can return null - CI failing bc of reflection by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10543](https://github.com/vimeo/psalm/pull/10543) - make basename & dirname return types more specific by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10545](https://github.com/vimeo/psalm/pull/10545) - add support for extract to set variables for keyed arrays and respect EXTR_SKIP by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10544](https://github.com/vimeo/psalm/pull/10544) - remove redundat directory separator which caused "//" in path not found errors by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10542](https://github.com/vimeo/psalm/pull/10542) - Fix empty literal string becomes non-empty-string by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10499](https://github.com/vimeo/psalm/pull/10499) #### New Contributors - [@​samlitowitz](https://github.com/samlitowitz) made their first contribution in [https://github.com/vimeo/psalm/pull/10518](https://github.com/vimeo/psalm/pull/10518) - [@​kthaler](https://github.com/kthaler) made their first contribution in [https://github.com/vimeo/psalm/pull/10536](https://github.com/vimeo/psalm/pull/10536) **Full Changelog**: vimeo/psalm@5.19.0...5.20.0 ### [`v5.19.0`](https://github.com/vimeo/psalm/releases/tag/5.19.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.18.0...5.19.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> #### What's Changed ##### Features - Reduce memory consumption of caching and parallel processing without igbinary by [@​sj-i](https://github.com/sj-i) in [https://github.com/vimeo/psalm/pull/10532](https://github.com/vimeo/psalm/pull/10532) - filter_input & filter_var return type more specific by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10498](https://github.com/vimeo/psalm/pull/10498) ##### Fixes - strtok always returns a non-empty-string when it does not return false by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10497](https://github.com/vimeo/psalm/pull/10497) - Fix [#​10512](https://github.com/vimeo/psalm/issues/10512): Fixed SessionUpdateTimestampHandlerInterface parameter names by [@​zerkms](https://github.com/zerkms) in [https://github.com/vimeo/psalm/pull/10524](https://github.com/vimeo/psalm/pull/10524) - Fix [GH-10465](https://github.com/vimeo/psalm/issues/10465) by [@​florisluiten](https://github.com/florisluiten) in [https://github.com/vimeo/psalm/pull/10483](https://github.com/vimeo/psalm/pull/10483) - Fix callable without args not handled correctly by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10500](https://github.com/vimeo/psalm/pull/10500) - Add error when using readonly property in by-ref arg by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10505](https://github.com/vimeo/psalm/pull/10505) - fix: [#​10496](https://github.com/vimeo/psalm/issues/10496) [#​10503](https://github.com/vimeo/psalm/issues/10503) by [@​ging-dev](https://github.com/ging-dev) in [https://github.com/vimeo/psalm/pull/10508](https://github.com/vimeo/psalm/pull/10508) #### New Contributors - [@​florisluiten](https://github.com/florisluiten) made their first contribution in [https://github.com/vimeo/psalm/pull/10483](https://github.com/vimeo/psalm/pull/10483) **Full Changelog**: vimeo/psalm@5.18.0...5.19.0 ### [`v5.18.0`](https://github.com/vimeo/psalm/releases/tag/5.18.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.17.0...5.18.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> ##### What's Changed ##### Features - Add support for Override attribute by [@​delolmo](https://github.com/delolmo) in [https://github.com/vimeo/psalm/pull/10493](https://github.com/vimeo/psalm/pull/10493) ##### Fixes - Fix [#​10460](https://github.com/vimeo/psalm/issues/10460) by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10464](https://github.com/vimeo/psalm/pull/10464) - Emit AfterCodebasePopulatedEvent even on partial scans by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10457](https://github.com/vimeo/psalm/pull/10457) - Small assertion fix by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10455](https://github.com/vimeo/psalm/pull/10455) - Fix shaped array class string key combination by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10450](https://github.com/vimeo/psalm/pull/10450) - Fix remaining POSIX-only absolute path detection by [@​theodorejb](https://github.com/theodorejb) in [https://github.com/vimeo/psalm/pull/10452](https://github.com/vimeo/psalm/pull/10452) - dont combine empty string with numeric-string by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10459](https://github.com/vimeo/psalm/pull/10459) - Fix type not equal when parent by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10477](https://github.com/vimeo/psalm/pull/10477) - Use same parameter names in stubs by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10480](https://github.com/vimeo/psalm/pull/10480) - fix false positive ArgumentTypeCoercion for callback param by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10454](https://github.com/vimeo/psalm/pull/10454) - report error for invalid array key type by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10481](https://github.com/vimeo/psalm/pull/10481) - fix literal int/string comparisons only using one literal by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10484](https://github.com/vimeo/psalm/pull/10484) - add InvalidArgument error when passing false to true param by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10488](https://github.com/vimeo/psalm/pull/10488) - Fix Uncaught RuntimeException: PHP Error: Uninitialized string offset 0 when $pattern is empty by [@​iMu3ic](https://github.com/iMu3ic) in [https://github.com/vimeo/psalm/pull/10489](https://github.com/vimeo/psalm/pull/10489) ##### Internal changes - fix composer scripts running with inconsistent php versions by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10463](https://github.com/vimeo/psalm/pull/10463) - update fidry/cpu-core-counter dependency by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10456](https://github.com/vimeo/psalm/pull/10456) - fix psalm v4 hardcoded in tests by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10475](https://github.com/vimeo/psalm/pull/10475) ##### New Contributors - [@​iMu3ic](https://github.com/iMu3ic) made their first contribution in [https://github.com/vimeo/psalm/pull/10489](https://github.com/vimeo/psalm/pull/10489) - [@​delolmo](https://github.com/delolmo) made their first contribution in [https://github.com/vimeo/psalm/pull/10493](https://github.com/vimeo/psalm/pull/10493) **Full Changelog**: vimeo/psalm@5.17.0...5.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/open-feature/php-sdk). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMzMxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Actually, it's quite weird error as here is how the argument is described: https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/Routing/Loader/Configurator/Traits/RouteTrait.php#L126 |
oguzhand95
referenced
this pull request
in cerbos/cerbos-sdk-php
May 14, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [phpstan/phpstan](https://github.com/phpstan/phpstan) | `1.10.67` -> `1.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.67/1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.67/1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [vimeo/psalm](https://github.com/vimeo/psalm) | `5.23.1` -> `5.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/vimeo%2fpsalm/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/vimeo%2fpsalm/5.23.1/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/vimeo%2fpsalm/5.23.1/5.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>phpstan/phpstan (phpstan/phpstan)</summary> ### [`v1.11.0`](https://github.com/phpstan/phpstan/releases/tag/1.11.0) [Compare Source](https://github.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://github.com/phpstan/phpstan-src/pull/3028)), [#​7553](https://github.com/phpstan/phpstan/issues/7553), thanks [@​ttomdewit](https://github.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 - phpstan/phpstan-src@281a87d - [#​3020](https://github.com/phpstan/phpstan-src/pull/3020), thanks [@​staabm](https://github.com/staabm)! - [#​3022](https://github.com/phpstan/phpstan-src/pull/3022), thanks [@​staabm](https://github.com/staabm)! - [#​3023](https://github.com/phpstan/phpstan-src/pull/3023), thanks [@​staabm](https://github.com/staabm)! - BetterNoopRule - take advantage of impure points (phpstan/phpstan-src@a647052), [#​10389](https://github.com/phpstan/phpstan/issues/10389) - Run missing type check on `@param-out` (phpstan/phpstan-src@56b2002) - CallToConstructorStatementWithoutSideEffectsRule - report class with no constructor (phpstan/phpstan-src@b116d25) - 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 (phpstan/phpstan-src@969e6fa) *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 (phpstan/phpstan-src@9a3ed85) - Deprecate `checkMissingIterableValueType: false` and `checkGenericClassInNonGenericObjectType: false` in favour of ignoring via identifiers (phpstan/phpstan-src@a649981) - Deprecate old NoopRule - replaced by BetterNoopRule in bleeding edge (phpstan/phpstan-src@1090835) - Allow ignoring errors from CollectedDataNode with local comments (phpstan/phpstan-src@dc3b75a) - Introduce `new` type ([#​3050](https://github.com/phpstan/phpstan-src/pull/3050)), [#​9704](https://github.com/phpstan/phpstan/issues/9704), thanks [@​ruudk](https://github.com/ruudk)! - RuleTestCase - fail on PHP warnings, notices etc. ([#​3030](https://github.com/phpstan/phpstan-src/pull/3030)), thanks [@​janedbal](https://github.com/janedbal)! - Check duplicate assignment of redeclared promoted readonly properties ([#​3049](https://github.com/phpstan/phpstan-src/pull/3049)), [#​8101](https://github.com/phpstan/phpstan/issues/8101), [#​9863](https://github.com/phpstan/phpstan/issues/9863), [#​9864](https://github.com/phpstan/phpstan/issues/9864), thanks [@​schlndh](https://github.com/schlndh)! - Remove line from "nikic/php-parser" error message ([#​2845](https://github.com/phpstan/phpstan-src/pull/2845)), thanks [@​mvorisek](https://github.com/mvorisek)! - Stub validator - PHPStan classes are known without extra stubs (phpstan/phpstan-src@d004c23) - Stub validator - PhpParser classes are known without extra stubs (phpstan/phpstan-src@3e498e1) - CheckstyleErrorFormatter - include error identifier in source attribute (phpstan/phpstan-src@f66cf5b), [#​1205](https://github.com/phpstan/phpstan/issues/1205) - BaselinePhpErrorFormatter - error identifiers in comments (phpstan/phpstan-src@4b32cac) - `RuleErrorBuilder::file()` - file path needs to exist (phpstan/phpstan-src@c453f29) - AbstractMethodInNonAbstractClassRule - better error message for enums (phpstan/phpstan-src@b5dd34e) - Fixed Xdebug spelling ([#​2746](https://github.com/phpstan/phpstan-src/pull/2746)), thanks [@​derickr](https://github.com/derickr)! - Track invalidated `$this` and used variables after invoking closure ([#​2980](https://github.com/phpstan/phpstan-src/pull/2980)) - Support `@phan-` prefixes on recognized PHPDoc tags ([#​3000](https://github.com/phpstan/phpstan-src/pull/3000)), thanks [@​anomiex](https://github.com/anomiex)! - `pure-callable` and `pure-Closure` PHPDoc types (phpstan/phpstan-src@cdaff5f) - `highlight_string()` flips side-effects depending on $return ([#​3021](https://github.com/phpstan/phpstan-src/pull/3021)), thanks [@​staabm](https://github.com/staabm)! - Improve types for predefined constants ([#​3054](https://github.com/phpstan/phpstan-src/pull/3054)), thanks [@​zonuexe](https://github.com/zonuexe)! # Bugfixes 🐛 - Make `AccessoryNonFalsyStringType::toInteger()` return `IntegerType` instead of non-zero ([#​3018](https://github.com/phpstan/phpstan-src/pull/3018)), [#​10893](https://github.com/phpstan/phpstan/issues/10893), thanks [@​zonuexe](https://github.com/zonuexe)! - Filter scope by non-empty array after foreach regardless of `polluteScopeWithAlwaysIterableForeach` ([#​3029](https://github.com/phpstan/phpstan-src/pull/3029)), [#​10922](https://github.com/phpstan/phpstan/issues/10922), thanks [@​VincentLanglet](https://github.com/VincentLanglet)! - Preserve large arrays with same keys through union ([#​3032](https://github.com/phpstan/phpstan-src/pull/3032)), [#​9397](https://github.com/phpstan/phpstan/issues/9397), [#​10080](https://github.com/phpstan/phpstan/issues/10080), thanks [@​schlndh](https://github.com/schlndh)! - Fix `count($x) > $n === true` negation ([#​3037](https://github.com/phpstan/phpstan-src/pull/3037)), [#​10952](https://github.com/phpstan/phpstan/issues/10952), thanks [@​rvanvelzen](https://github.com/rvanvelzen)! - Fix NAN not accepting NAN ([#​3036](https://github.com/phpstan/phpstan-src/pull/3036)), [#​10956](https://github.com/phpstan/phpstan/issues/10956), [#​10297](https://github.com/phpstan/phpstan/issues/10297), thanks [@​rvanvelzen](https://github.com/rvanvelzen)! - DateTimeInstantiationRule - fix error message for `new` with wrong name case (phpstan/phpstan-src@59ac31a) - Process ConstFetch (phpstan/phpstan-src@b5c63c2) - Fix `preg_match_all` behaviour with no flags (phpstan/phpstan-src@a856ec7) - `file_get_contents` is an impure function (phpstan/phpstan-src@2b5b317) - Fix `ClosureType::equals()` (phpstan/phpstan-src@29c35b5) - Use statement result of analysed anonymous class to inform about throw points and impure points (phpstan/phpstan-src@70a75f6) - Filter out implicit throw points from callables when `exceptions.implicitThrows: false` ([#​3016](https://github.com/phpstan/phpstan-src/pull/3016)), thanks [@​janedbal](https://github.com/janedbal)! - Fix `ConstantArrayType::hasOffsetValueType()` for offset union type where all types are valid (phpstan/phpstan-src@26e949b) - `non-empty-list` always has offset 0 (phpstan/phpstan-src@f4d1d48) - Narrow to `non-empty-string`/`non-falsey-string` after `mb_strlen()` ([#​3038](https://github.com/phpstan/phpstan-src/pull/3038)), thanks [@​staabm](https://github.com/staabm)! - Implement `Type::isOffsetAccessLegal()` to detect offset access that crashes even in `isset()` ([#​3045](https://github.com/phpstan/phpstan-src/pull/3045)), [#​8393](https://github.com/phpstan/phpstan/issues/8393), [#​10926](https://github.com/phpstan/phpstan/issues/10926), thanks [@​rajyan](https://github.com/rajyan)! - Specify types on `match()` condition correctly ([#​3053](https://github.com/phpstan/phpstan-src/pull/3053)), [#​10974](https://github.com/phpstan/phpstan/issues/10974), [#​9694](https://github.com/phpstan/phpstan/issues/9694), thanks [@​rvanvelzen](https://github.com/rvanvelzen)! - `json_decode` with force array flag: subtract all objects, not just stdClass ([#​3052](https://github.com/phpstan/phpstan-src/pull/3052)), thanks [@​rajyan](https://github.com/rajyan)! - Fix `strlen($x) > $n === true` negation ([#​3040](https://github.com/phpstan/phpstan-src/pull/3040)), thanks [@​staabm](https://github.com/staabm)! - Support multi-byte string function variants ([#​3039](https://github.com/phpstan/phpstan-src/pull/3039)), thanks [@​staabm](https://github.com/staabm)! - Final scope from `Continue_` points should not be used for `while (true)` ([#​3057](https://github.com/phpstan/phpstan-src/pull/3057)), [#​10980](https://github.com/phpstan/phpstan/issues/10980), thanks [@​greew](https://github.com/greew)! - Fix enum performance problem ([#​3062](https://github.com/phpstan/phpstan-src/pull/3062), [#​3060](https://github.com/phpstan/phpstan-src/pull/3060)), [#​10979](https://github.com/phpstan/phpstan/issues/10979), thanks [@​staabm](https://github.com/staabm)! - NULL and null as a property default value are treated differently when overriding a parent property ([#​3063](https://github.com/phpstan/phpstan-src/pull/3063)), [#​10987](https://github.com/phpstan/phpstan/issues/10987), thanks [@​staabm](https://github.com/staabm)! # Function signature fixes 🤖 - Make the url key of metadata returned by `stream_get_meta_data()` optional ([#​3024](https://github.com/phpstan/phpstan-src/pull/3024)), [#​10887](https://github.com/phpstan/phpstan/issues/10887), thanks [@​hirokinoue](https://github.com/hirokinoue)! - Narrow `Closure::bind` `$newScope` param ([#​2817](https://github.com/phpstan/phpstan-src/pull/2817)), thanks [@​mvorisek](https://github.com/mvorisek)! - Infer object type mysqli_fetch_object ([#​2675](https://github.com/phpstan/phpstan/issues/2675)) ([#​2675](https://github.com/phpstan/phpstan-src/pull/2675)), thanks [@​staabm](https://github.com/staabm)! - Fix `Imagick::identifyImage()` return type ([#​3017](https://github.com/phpstan/phpstan-src/pull/3017)), thanks [@​SVillette](https://github.com/SVillette)! # Internals 🔍 - Clean up old identifiers and metadata (phpstan/phpstan-src@c476a86) - Delete StatementOrderVisitor that is no longer needed (phpstan/phpstan-src@017d321) - Introduce `ClassReflection::getClassTypeDescription()` (phpstan/phpstan-src@dec9e43) - Fix classname typo in tests ([#​2461](https://github.com/phpstan/phpstan-src/pull/2461)), thanks [@​szepeviktor](https://github.com/szepeviktor)! - Fix various typos ([#​2463](https://github.com/phpstan/phpstan-src/pull/2463)), thanks [@​szepeviktor](https://github.com/szepeviktor)! - Added text regarding patch issues during installation ([#​2670](https://github.com/phpstan/phpstan-src/pull/2670)), thanks [@​mt-satak](https://github.com/mt-satak)! - Fix typo in ArgumentsNormalizer ([#​2705](https://github.com/phpstan/phpstan-src/pull/2705)), thanks [@​mad-briller](https://github.com/mad-briller)! - Rich PHPDoc for ExceptionTypeResolver (phpstan/phpstan-src@e7ab4f7) - Hide internal commands ([#​2833](https://github.com/phpstan/phpstan-src/pull/2833)), thanks [@​rvanvelzen](https://github.com/rvanvelzen)! - Test invalidated object in static closure ([#​2981](https://github.com/phpstan/phpstan-src/pull/2981)), thanks [@​staabm](https://github.com/staabm)! - PHPDoc: address multiple variables defined in one [@​param](https://github.com/param) ([#​3001](https://github.com/phpstan/phpstan-src/pull/3001)), thanks [@​Muqsit](https://github.com/Muqsit)! - Do not assume every contributor uses PhpStorm (phpstan/phpstan-src@d1834e6) - TypeInferenceTestCase: ability to disable implicit throws ([#​3015](https://github.com/phpstan/phpstan-src/pull/3015)), thanks [@​janedbal](https://github.com/janedbal)! - Slightly reduce comparing and calling methods for trivial optimizations ([#​3004](https://github.com/phpstan/phpstan-src/pull/3004)), [#​10926](https://github.com/phpstan/phpstan/issues/10926), thanks [@​zonuexe](https://github.com/zonuexe)! - AnalyserResultFinalizer - DRY of running CollectedDataNode rules (phpstan/phpstan-src@38e2c96) - Introduce LocalIgnoresProcessor (phpstan/phpstan-src@d026655) - Introduce `RuleErrorBuilder::treatPhpDocTypesAsCertainTip()` for a bit more DRYness ([#​3035](https://github.com/phpstan/phpstan-src/pull/3035)), thanks [@​axlon](https://github.com/axlon)! - Make ResultCacheEndToEndTest pass level 9 ([#​3055](https://github.com/phpstan/phpstan-src/pull/3055)), [#​10977](https://github.com/phpstan/phpstan/issues/10977), thanks [@​AJenbo](https://github.com/AJenbo)! - ClassReflection - cache enum cases (phpstan/phpstan-src@39ce042), [#​10979](https://github.com/phpstan/phpstan/issues/10979) </details> <details> <summary>vimeo/psalm (vimeo/psalm)</summary> ### [`v5.24.0`](https://github.com/vimeo/psalm/releases/tag/5.24.0) [Compare Source](https://github.com/vimeo/psalm/compare/5.23.1...5.24.0) <!-- Release notes generated using configuration in .github/release.yml at 5.x --> ##### What's Changed ##### Features - Allow specifying flags to Codebase::isTypeContainedByType by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10829](https://github.com/vimeo/psalm/pull/10829) - Allow more callable types as subtypes of `callable` by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10805](https://github.com/vimeo/psalm/pull/10805) - Report `parent` being used in callable context when the class does not extend anything by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10838](https://github.com/vimeo/psalm/pull/10838) - Report error for additional deprecated arg types in PHP 8.1/8.3 by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10824](https://github.com/vimeo/psalm/pull/10824) - Add MissingClassConstType Issue by [@​jack-worman](https://github.com/jack-worman) in [https://github.com/vimeo/psalm/pull/10828](https://github.com/vimeo/psalm/pull/10828) - Enforce parameter names for consistent constructors by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10821](https://github.com/vimeo/psalm/pull/10821) - Add misc missing errors for invalid callable methods by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10839](https://github.com/vimeo/psalm/pull/10839) ##### Fixes - Forbid named arguments for ArrayAcccess methods by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10804](https://github.com/vimeo/psalm/pull/10804) - Don't crash on invalid templates by [@​weirdan](https://github.com/weirdan) in [https://github.com/vimeo/psalm/pull/10806](https://github.com/vimeo/psalm/pull/10806) - report error for single param name mismatch too since named args can even be used then by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10822](https://github.com/vimeo/psalm/pull/10822) - add support for named arguments for filter_var and filter_input by [@​pilif](https://github.com/pilif) in [https://github.com/vimeo/psalm/pull/10815](https://github.com/vimeo/psalm/pull/10815) - When inside isset, make array fetch result nullable by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10756](https://github.com/vimeo/psalm/pull/10756) - Promoted properties missing in extended \__construct should report PropertyNotSetInConstructor by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10817](https://github.com/vimeo/psalm/pull/10817) - Updating signature of `getmxrr()` by [@​ThomasLandauer](https://github.com/ThomasLandauer) in [https://github.com/vimeo/psalm/pull/10847](https://github.com/vimeo/psalm/pull/10847) - Improve string-int juggle consistency in array keys and display for int-like strings in type by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10814](https://github.com/vimeo/psalm/pull/10814) - Fix storage not available in thread for intersection doc types by [@​simonberger](https://github.com/simonberger) in [https://github.com/vimeo/psalm/pull/10856](https://github.com/vimeo/psalm/pull/10856) - Don't emit MissingOverrideAttribute for implicit Stringable implementations by [@​edsrzf](https://github.com/edsrzf) in [https://github.com/vimeo/psalm/pull/10858](https://github.com/vimeo/psalm/pull/10858) - Specify array return type of session_get_cookie_params by [@​jorgsowa](https://github.com/jorgsowa) in [https://github.com/vimeo/psalm/pull/10859](https://github.com/vimeo/psalm/pull/10859) - Unknown [@​psalm](https://github.com/psalm) annotation should not make whole docblock invalid by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10885](https://github.com/vimeo/psalm/pull/10885) - Add `mail` to impure functions list by [@​smaddock](https://github.com/smaddock) in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - Update PHP 8.2 Call map delta with refined types for string comparison functions by [@​gsteel](https://github.com/gsteel) in [https://github.com/vimeo/psalm/pull/10883](https://github.com/vimeo/psalm/pull/10883) ##### Docs - document that [@​psalm-internal](https://github.com/psalm-internal) works for namespace + class too by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10866](https://github.com/vimeo/psalm/pull/10866) ##### Internal changes - fix tests running with other than called PHP binary if called with a non-default PHP binary by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10842](https://github.com/vimeo/psalm/pull/10842) - Explicitly set value in config to fix warning in tests by [@​kkmuffme](https://github.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/10843](https://github.com/vimeo/psalm/pull/10843) - \[PHP 8.4] Fixes for implicit nullability deprecation by [@​Ayesh](https://github.com/Ayesh) in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - Throw exception instead of silently logging issues occurred during scan by [@​danog](https://github.com/danog) in [https://github.com/vimeo/psalm/pull/10902](https://github.com/vimeo/psalm/pull/10902) ##### Other changes - Fix conditional on non empty literal string by [@​VincentLanglet](https://github.com/VincentLanglet) in [https://github.com/vimeo/psalm/pull/10912](https://github.com/vimeo/psalm/pull/10912) - Ignore jsonSerialize for implementors of JsonSerializable by [@​josephwynn-sc](https://github.com/josephwynn-sc) in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - Add XML functions to ImpureFunctionsList [#​10882](https://github.com/vimeo/psalm/issues/10882) by [@​DKhalil](https://github.com/DKhalil) in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) ##### New Contributors - [@​Ayesh](https://github.com/Ayesh) made their first contribution in [https://github.com/vimeo/psalm/pull/10832](https://github.com/vimeo/psalm/pull/10832) - [@​smaddock](https://github.com/smaddock) made their first contribution in [https://github.com/vimeo/psalm/pull/10923](https://github.com/vimeo/psalm/pull/10923) - [@​josephwynn-sc](https://github.com/josephwynn-sc) made their first contribution in [https://github.com/vimeo/psalm/pull/10891](https://github.com/vimeo/psalm/pull/10891) - [@​DKhalil](https://github.com/DKhalil) made their first contribution in [https://github.com/vimeo/psalm/pull/10887](https://github.com/vimeo/psalm/pull/10887) **Full Changelog**: vimeo/psalm@5.23.1...5.24.0 </details> --- ### 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](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/cerbos/cerbos-sdk-php). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXJlYS9kZXBzIiwiYm90cyIsImtpbmQvY2hvcmUiXX0=--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Oğuzhan Durgun <oguzhandurgun95@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #10461