Skip to content

Enforce parameter names for consistent constructors#10821

Merged
weirdan merged 1 commit intovimeo:5.xfrom
kkmuffme:consistent-constructor-param-name-mismatch
Mar 20, 2024
Merged

Enforce parameter names for consistent constructors#10821
weirdan merged 1 commit intovimeo:5.xfrom
kkmuffme:consistent-constructor-param-name-mismatch

Conversation

@kkmuffme
Copy link
Copy Markdown
Contributor

Fix #10784

@kkmuffme kkmuffme force-pushed the consistent-constructor-param-name-mismatch branch from 3c828c7 to 14defb7 Compare March 13, 2024 18:18
@kkmuffme kkmuffme marked this pull request as ready for review March 13, 2024 18:24
@kkmuffme
Copy link
Copy Markdown
Contributor Author

@weirdan @orklah please merge

@weirdan weirdan force-pushed the consistent-constructor-param-name-mismatch branch from 14defb7 to 9cfce37 Compare March 20, 2024 01:01
@weirdan weirdan added the release:feature The PR will be included in 'Features' section of the release notes label Mar 20, 2024
@weirdan weirdan changed the title ParamNameMismatch not reported for __construct Enforce parameter names for consistent constructors Mar 20, 2024
@weirdan weirdan merged commit cc5ad67 into vimeo:5.x Mar 20, 2024
@weirdan
Copy link
Copy Markdown
Collaborator

weirdan commented Mar 20, 2024

Thanks!

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://togithub.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://togithub.com/vimeo/psalm/releases/tag/5.24.0)

[Compare
Source](https://togithub.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
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10829](https://togithub.com/vimeo/psalm/pull/10829)
- Allow more callable types as subtypes of `callable` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10805](https://togithub.com/vimeo/psalm/pull/10805)
- Report `parent` being used in callable context when the class does not
extend anything by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10838](https://togithub.com/vimeo/psalm/pull/10838)
- Report error for additional deprecated arg types in PHP 8.1/8.3 by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10824](https://togithub.com/vimeo/psalm/pull/10824)
- Add MissingClassConstType Issue by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/10828](https://togithub.com/vimeo/psalm/pull/10828)
- Enforce parameter names for consistent constructors by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10821](https://togithub.com/vimeo/psalm/pull/10821)
- Add misc missing errors for invalid callable methods by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10839](https://togithub.com/vimeo/psalm/pull/10839)

##### Fixes

- Forbid named arguments for ArrayAcccess methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10804](https://togithub.com/vimeo/psalm/pull/10804)
- Don't crash on invalid templates by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10806](https://togithub.com/vimeo/psalm/pull/10806)
- report error for single param name mismatch too since named args can
even be used then by [@&#8203;kkmuffme](https://togithub.com/kkmuffme)
in
[https://github.com/vimeo/psalm/pull/10822](https://togithub.com/vimeo/psalm/pull/10822)
- add support for named arguments for filter_var and filter_input by
[@&#8203;pilif](https://togithub.com/pilif) in
[https://github.com/vimeo/psalm/pull/10815](https://togithub.com/vimeo/psalm/pull/10815)
- When inside isset, make array fetch result nullable by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10756](https://togithub.com/vimeo/psalm/pull/10756)
- Promoted properties missing in extended \__construct should report
PropertyNotSetInConstructor by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10817](https://togithub.com/vimeo/psalm/pull/10817)
- Updating signature of `getmxrr()` by
[@&#8203;ThomasLandauer](https://togithub.com/ThomasLandauer) in
[https://github.com/vimeo/psalm/pull/10847](https://togithub.com/vimeo/psalm/pull/10847)
- Improve string-int juggle consistency in array keys and display for
int-like strings in type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10814](https://togithub.com/vimeo/psalm/pull/10814)
- Fix storage not available in thread for intersection doc types by
[@&#8203;simonberger](https://togithub.com/simonberger) in
[https://github.com/vimeo/psalm/pull/10856](https://togithub.com/vimeo/psalm/pull/10856)
- Don't emit MissingOverrideAttribute for implicit Stringable
implementations by [@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10858](https://togithub.com/vimeo/psalm/pull/10858)
- Specify array return type of session_get_cookie_params by
[@&#8203;jorgsowa](https://togithub.com/jorgsowa) in
[https://github.com/vimeo/psalm/pull/10859](https://togithub.com/vimeo/psalm/pull/10859)
- Unknown [@&#8203;psalm](https://togithub.com/psalm) annotation should
not make whole docblock invalid by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10885](https://togithub.com/vimeo/psalm/pull/10885)
- Add `mail` to impure functions list by
[@&#8203;smaddock](https://togithub.com/smaddock) in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- Update PHP 8.2 Call map delta with refined types for string comparison
functions by [@&#8203;gsteel](https://togithub.com/gsteel) in
[https://github.com/vimeo/psalm/pull/10883](https://togithub.com/vimeo/psalm/pull/10883)

##### Docs

- document that
[@&#8203;psalm-internal](https://togithub.com/psalm-internal) works for
namespace + class too by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10866](https://togithub.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
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10842](https://togithub.com/vimeo/psalm/pull/10842)
- Explicitly set value in config to fix warning in tests by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10843](https://togithub.com/vimeo/psalm/pull/10843)
- \[PHP 8.4] Fixes for implicit nullability deprecation by
[@&#8203;Ayesh](https://togithub.com/Ayesh) in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- Throw exception instead of silently logging issues occurred during
scan by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10902](https://togithub.com/vimeo/psalm/pull/10902)

##### Other changes

- Fix conditional on non empty literal string by
[@&#8203;VincentLanglet](https://togithub.com/VincentLanglet) in
[https://github.com/vimeo/psalm/pull/10912](https://togithub.com/vimeo/psalm/pull/10912)
- Ignore jsonSerialize for implementors of JsonSerializable by
[@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- Add XML functions to ImpureFunctionsList
[#&#8203;10882](https://togithub.com/vimeo/psalm/issues/10882) by
[@&#8203;DKhalil](https://togithub.com/DKhalil) in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.com/vimeo/psalm/pull/10887)

#### New Contributors

- [@&#8203;Ayesh](https://togithub.com/Ayesh) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- [@&#8203;smaddock](https://togithub.com/smaddock) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- [@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) made their
first contribution in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- [@&#8203;DKhalil](https://togithub.com/DKhalil) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.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==-->
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://togithub.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://togithub.com/vimeo/psalm/releases/tag/5.24.0)

[Compare
Source](https://togithub.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
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10829](https://togithub.com/vimeo/psalm/pull/10829)
- Allow more callable types as subtypes of `callable` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10805](https://togithub.com/vimeo/psalm/pull/10805)
- Report `parent` being used in callable context when the class does not
extend anything by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10838](https://togithub.com/vimeo/psalm/pull/10838)
- Report error for additional deprecated arg types in PHP 8.1/8.3 by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10824](https://togithub.com/vimeo/psalm/pull/10824)
- Add MissingClassConstType Issue by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/10828](https://togithub.com/vimeo/psalm/pull/10828)
- Enforce parameter names for consistent constructors by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10821](https://togithub.com/vimeo/psalm/pull/10821)
- Add misc missing errors for invalid callable methods by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10839](https://togithub.com/vimeo/psalm/pull/10839)

##### Fixes

- Forbid named arguments for ArrayAcccess methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10804](https://togithub.com/vimeo/psalm/pull/10804)
- Don't crash on invalid templates by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10806](https://togithub.com/vimeo/psalm/pull/10806)
- report error for single param name mismatch too since named args can
even be used then by [@&#8203;kkmuffme](https://togithub.com/kkmuffme)
in
[https://github.com/vimeo/psalm/pull/10822](https://togithub.com/vimeo/psalm/pull/10822)
- add support for named arguments for filter_var and filter_input by
[@&#8203;pilif](https://togithub.com/pilif) in
[https://github.com/vimeo/psalm/pull/10815](https://togithub.com/vimeo/psalm/pull/10815)
- When inside isset, make array fetch result nullable by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10756](https://togithub.com/vimeo/psalm/pull/10756)
- Promoted properties missing in extended \__construct should report
PropertyNotSetInConstructor by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10817](https://togithub.com/vimeo/psalm/pull/10817)
- Updating signature of `getmxrr()` by
[@&#8203;ThomasLandauer](https://togithub.com/ThomasLandauer) in
[https://github.com/vimeo/psalm/pull/10847](https://togithub.com/vimeo/psalm/pull/10847)
- Improve string-int juggle consistency in array keys and display for
int-like strings in type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10814](https://togithub.com/vimeo/psalm/pull/10814)
- Fix storage not available in thread for intersection doc types by
[@&#8203;simonberger](https://togithub.com/simonberger) in
[https://github.com/vimeo/psalm/pull/10856](https://togithub.com/vimeo/psalm/pull/10856)
- Don't emit MissingOverrideAttribute for implicit Stringable
implementations by [@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10858](https://togithub.com/vimeo/psalm/pull/10858)
- Specify array return type of session_get_cookie_params by
[@&#8203;jorgsowa](https://togithub.com/jorgsowa) in
[https://github.com/vimeo/psalm/pull/10859](https://togithub.com/vimeo/psalm/pull/10859)
- Unknown [@&#8203;psalm](https://togithub.com/psalm) annotation should
not make whole docblock invalid by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10885](https://togithub.com/vimeo/psalm/pull/10885)
- Add `mail` to impure functions list by
[@&#8203;smaddock](https://togithub.com/smaddock) in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- Update PHP 8.2 Call map delta with refined types for string comparison
functions by [@&#8203;gsteel](https://togithub.com/gsteel) in
[https://github.com/vimeo/psalm/pull/10883](https://togithub.com/vimeo/psalm/pull/10883)

##### Docs

- document that
[@&#8203;psalm-internal](https://togithub.com/psalm-internal) works for
namespace + class too by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10866](https://togithub.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
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10842](https://togithub.com/vimeo/psalm/pull/10842)
- Explicitly set value in config to fix warning in tests by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10843](https://togithub.com/vimeo/psalm/pull/10843)
- \[PHP 8.4] Fixes for implicit nullability deprecation by
[@&#8203;Ayesh](https://togithub.com/Ayesh) in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- Throw exception instead of silently logging issues occurred during
scan by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10902](https://togithub.com/vimeo/psalm/pull/10902)

##### Other changes

- Fix conditional on non empty literal string by
[@&#8203;VincentLanglet](https://togithub.com/VincentLanglet) in
[https://github.com/vimeo/psalm/pull/10912](https://togithub.com/vimeo/psalm/pull/10912)
- Ignore jsonSerialize for implementors of JsonSerializable by
[@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- Add XML functions to ImpureFunctionsList
[#&#8203;10882](https://togithub.com/vimeo/psalm/issues/10882) by
[@&#8203;DKhalil](https://togithub.com/DKhalil) in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.com/vimeo/psalm/pull/10887)

#### New Contributors

- [@&#8203;Ayesh](https://togithub.com/Ayesh) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- [@&#8203;smaddock](https://togithub.com/smaddock) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- [@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) made their
first contribution in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- [@&#8203;DKhalil](https://togithub.com/DKhalil) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.com/vimeo/psalm/pull/10887)

**Full Changelog**:
vimeo/psalm@5.23.1...5.24.0

### [`v5.23.1`](https://togithub.com/vimeo/psalm/releases/tag/5.23.1)

[Compare
Source](https://togithub.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 [@&#8203;issidorov](https://togithub.com/issidorov) in
[https://github.com/vimeo/psalm/pull/10812](https://togithub.com/vimeo/psalm/pull/10812)

**Full Changelog**:
vimeo/psalm@5.23.0...5.23.1

### [`v5.23.0`](https://togithub.com/vimeo/psalm/releases/tag/5.23.0)

[Compare
Source](https://togithub.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
[@&#8203;gsteel](https://togithub.com/gsteel) in
[https://github.com/vimeo/psalm/pull/10726](https://togithub.com/vimeo/psalm/pull/10726)
- Add list of statements to BeforeFileAnalysisEvent by
[@&#8203;ohader](https://togithub.com/ohader) in
[https://github.com/vimeo/psalm/pull/10728](https://togithub.com/vimeo/psalm/pull/10728)
- Forbid iterating over generators with non-nullable `send()` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10697](https://togithub.com/vimeo/psalm/pull/10697)
- Initial support for named parameters for callables by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10772](https://togithub.com/vimeo/psalm/pull/10772)

##### Fixes

- Improve randomizer stubs by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10709](https://togithub.com/vimeo/psalm/pull/10709)
- Fix detecting magic static methods by
[@&#8203;issidorov](https://togithub.com/issidorov) in
[https://github.com/vimeo/psalm/pull/10704](https://togithub.com/vimeo/psalm/pull/10704)
- Fix non-empty-lowercase-string handling with literal non-lowercase
strings by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10722](https://togithub.com/vimeo/psalm/pull/10722)
- Fix RiskyTruthyFalsyComparison irrelevant errors when there is no
explicit truthy/falsy type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10733](https://togithub.com/vimeo/psalm/pull/10733)
- Allow `Override` attribute to be used in pure contexts by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10734](https://togithub.com/vimeo/psalm/pull/10734)
- Revert "Allow tainted numerics except for 'html' and 'has_quotes'" by
[@&#8203;ohader](https://togithub.com/ohader) in
[https://github.com/vimeo/psalm/pull/10729](https://togithub.com/vimeo/psalm/pull/10729)
- Fix loading stubs from phar file on Windows by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10748](https://togithub.com/vimeo/psalm/pull/10748)
- Fix a false flag issue with InvalidConstantAssignmentValue by
[@&#8203;MelechMizrachi](https://togithub.com/MelechMizrachi) in
[https://github.com/vimeo/psalm/pull/10738](https://togithub.com/vimeo/psalm/pull/10738)
- Set inside_isset false when analyzing ArrayDimFetch index by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10752](https://togithub.com/vimeo/psalm/pull/10752)
- Set inside_isset = false when analyzing arguments by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10753](https://togithub.com/vimeo/psalm/pull/10753)
- Fix PHP notice - crash on invalid taint-escape by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10760](https://togithub.com/vimeo/psalm/pull/10760)
- Fix version comparison for `@since` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10764](https://togithub.com/vimeo/psalm/pull/10764)
- Since annotations outside phpstub should not infer php version by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10769](https://togithub.com/vimeo/psalm/pull/10769)
- Backport `WeakMap` iterator fix from `master` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10778](https://togithub.com/vimeo/psalm/pull/10778)
- Namespace anonymous classes by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10779](https://togithub.com/vimeo/psalm/pull/10779)
- Update CallMap for sqlsrv_connect and sqlsrv_errors to match
reflection by [@&#8203;theodorejb](https://togithub.com/theodorejb) in
[https://github.com/vimeo/psalm/pull/10781](https://togithub.com/vimeo/psalm/pull/10781)
- `$resource` parameter of `mkdir()` is nullable since PHP 7.3 by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10802](https://togithub.com/vimeo/psalm/pull/10802)
- Use wider class-string when combining class strings with intersections
by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10800](https://togithub.com/vimeo/psalm/pull/10800)

##### Internal changes

- Use TaintKind/TaintKindGroup constants instead of string values by
[@&#8203;ohader](https://togithub.com/ohader) in
[https://github.com/vimeo/psalm/pull/10746](https://togithub.com/vimeo/psalm/pull/10746)
- Skip symlink test on Windows by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10749](https://togithub.com/vimeo/psalm/pull/10749)
- Avoid duplicating code for RiskyTruthyFalsyComparison by
[@&#8203;theodorejb](https://togithub.com/theodorejb) in
[https://github.com/vimeo/psalm/pull/10765](https://togithub.com/vimeo/psalm/pull/10765)
- fix PHP 8 tests running with wrong --php-version=/phpVersion= if not
explicitly specified by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10776](https://togithub.com/vimeo/psalm/pull/10776)
- CS fix by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10801](https://togithub.com/vimeo/psalm/pull/10801)

#### New Contributors

- [@&#8203;MelechMizrachi](https://togithub.com/MelechMizrachi) made
their first contribution in
[https://github.com/vimeo/psalm/pull/10738](https://togithub.com/vimeo/psalm/pull/10738)

**Full Changelog**:
vimeo/psalm@5.22.2...5.23.0

### [`v5.22.2`](https://togithub.com/vimeo/psalm/releases/tag/5.22.2)

[Compare
Source](https://togithub.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
[@&#8203;weirdan](https://togithub.com/weirdan) and
[@&#8203;ohader](https://togithub.com/ohader) in
[https://github.com/vimeo/psalm/pull/10720](https://togithub.com/vimeo/psalm/pull/10720)

**Full Changelog**:
vimeo/psalm@5.22.1...5.22.2

### [`v5.22.1`](https://togithub.com/vimeo/psalm/releases/tag/5.22.1)

[Compare
Source](https://togithub.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
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10713](https://togithub.com/vimeo/psalm/pull/10713)

**Full Changelog**:
vimeo/psalm@5.22.0...5.22.1

### [`v5.22.0`](https://togithub.com/vimeo/psalm/releases/tag/5.22.0)

[Compare
Source](https://togithub.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
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10623](https://togithub.com/vimeo/psalm/pull/10623)
- allow typedef imports from any kind of classlike by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10625](https://togithub.com/vimeo/psalm/pull/10625)
- Allow enum cases to be global constants by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10634](https://togithub.com/vimeo/psalm/pull/10634)
- New InvalidOverride issue for Override attribute by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10644](https://togithub.com/vimeo/psalm/pull/10644)
- Analyze dynamic names for static property and const fetches by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10629](https://togithub.com/vimeo/psalm/pull/10629)
- New MissingOverrideAttribute issue by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10651](https://togithub.com/vimeo/psalm/pull/10651)
- Flag `stdClass::__construct()` calls that have arguments by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10661](https://togithub.com/vimeo/psalm/pull/10661)
- Improve Reflection stubs by
[@&#8203;vudaltsov](https://togithub.com/vudaltsov) in
[https://github.com/vimeo/psalm/pull/10091](https://togithub.com/vimeo/psalm/pull/10091)
- Forbid constructors from returning any values by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10686](https://togithub.com/vimeo/psalm/pull/10686)
- Report first class callables generated for unknown static methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10691](https://togithub.com/vimeo/psalm/pull/10691)
- Process `@psalm-this-out` on `__construct()` as well by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10690](https://togithub.com/vimeo/psalm/pull/10690)
- Report invalid number of arguments for psalm-taint-\* by
[@&#8203;staabm](https://togithub.com/staabm) in
[https://github.com/vimeo/psalm/pull/10699](https://togithub.com/vimeo/psalm/pull/10699)

##### Fixes

- Fix ownerDocument type in dom-ext classes by
[@&#8203;fluffycondor](https://togithub.com/fluffycondor) in
[https://github.com/vimeo/psalm/pull/10619](https://togithub.com/vimeo/psalm/pull/10619)
- Fix numeric scalar validate filter var input return type wrong by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10621](https://togithub.com/vimeo/psalm/pull/10621)
- Stable baseline by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10633](https://togithub.com/vimeo/psalm/pull/10633)
- Allow sebastian/diff v6 by
[@&#8203;simPod](https://togithub.com/simPod) in
[https://github.com/vimeo/psalm/pull/10639](https://togithub.com/vimeo/psalm/pull/10639)
- CallMap: Adjust return type for `inotify_add_watch()` to `int|false`
by [@&#8203;UlrichEckhardt](https://togithub.com/UlrichEckhardt) in
[https://github.com/vimeo/psalm/pull/10637](https://togithub.com/vimeo/psalm/pull/10637)
- Fix check-type when using builtin types from within a namespace by
[@&#8203;robchett](https://togithub.com/robchett) in
[https://github.com/vimeo/psalm/pull/10648](https://togithub.com/vimeo/psalm/pull/10648)
- Do not add `callable` as a native property type by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10654](https://togithub.com/vimeo/psalm/pull/10654)
- Fix additional places where base_dir was broken due to missing
separator by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10630](https://togithub.com/vimeo/psalm/pull/10630)
- Late binding of enum cases by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10655](https://togithub.com/vimeo/psalm/pull/10655)
- Suppress `UndefinedClass` in `whatever_exists()` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10659](https://togithub.com/vimeo/psalm/pull/10659)
- Fix parsing magic method annotations by
[@&#8203;issidorov](https://togithub.com/issidorov) in
[https://github.com/vimeo/psalm/pull/10665](https://togithub.com/vimeo/psalm/pull/10665)
- Strip callmap prefixes from parameter names by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10666](https://togithub.com/vimeo/psalm/pull/10666)
- Narrow `ord()` return type to `int<0,255>` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10676](https://togithub.com/vimeo/psalm/pull/10676)
- Template union object incorrect assertions by
[@&#8203;robchett](https://togithub.com/robchett) in
[https://github.com/vimeo/psalm/pull/10677](https://togithub.com/vimeo/psalm/pull/10677)
- Don't show backtrace in `InvalidDocblock` issue message by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10679](https://togithub.com/vimeo/psalm/pull/10679)
- Class consts in array shapes by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10678](https://togithub.com/vimeo/psalm/pull/10678)
- Prevent mixed|null by
[@&#8203;robchett](https://togithub.com/robchett) in
[https://github.com/vimeo/psalm/pull/10675](https://togithub.com/vimeo/psalm/pull/10675)

##### Internal changes

- Drop unused local composer repo by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10647](https://togithub.com/vimeo/psalm/pull/10647)
- Clarify that Pull request labels failure is to be resolved by
maintainers by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10649](https://togithub.com/vimeo/psalm/pull/10649)
- Fix unstable `hasFullyQualified(Interface|Enum)()` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10603](https://togithub.com/vimeo/psalm/pull/10603)
- Revert partial mistakenly pushed fix by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10671](https://togithub.com/vimeo/psalm/pull/10671)

**Full Changelog**:
vimeo/psalm@5.21.1...5.22.0

### [`v5.21.1`](https://togithub.com/vimeo/psalm/releases/tag/5.21.1)

[Compare
Source](https://togithub.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
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10628](https://togithub.com/vimeo/psalm/pull/10628)

**Full Changelog**:
vimeo/psalm@5.21.0...5.21.1

### [`v5.21.0`](https://togithub.com/vimeo/psalm/releases/tag/5.21.0)

[Compare
Source](https://togithub.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
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10617](https://togithub.com/vimeo/psalm/pull/10617)

##### Fixes

- Fix [#&#8203;10552](https://togithub.com/vimeo/psalm/issues/10552) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10572](https://togithub.com/vimeo/psalm/pull/10572)
- Unit test improvements for php-parser 5 by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10574](https://togithub.com/vimeo/psalm/pull/10574)
- Fix template replacement edge case by
[@&#8203;klimick](https://togithub.com/klimick) in
[https://github.com/vimeo/psalm/pull/10586](https://togithub.com/vimeo/psalm/pull/10586)
- Switch condition order by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10594](https://togithub.com/vimeo/psalm/pull/10594)
- Partial revert "Fix auto completion by partial property or method" by
[@&#8203;issidorov](https://togithub.com/issidorov) in
[https://github.com/vimeo/psalm/pull/10588](https://togithub.com/vimeo/psalm/pull/10588)
- \[LSP] Add issue type in description by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10607](https://togithub.com/vimeo/psalm/pull/10607)
- Do not validate callable arguments in lenient contexts by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10601](https://togithub.com/vimeo/psalm/pull/10601)
- `readgzfile()` is impure by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10600](https://togithub.com/vimeo/psalm/pull/10600)
- Allow properties on intersections with enum interfaces by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10599](https://togithub.com/vimeo/psalm/pull/10599)
- `key_exists()` is an alias for `array_key_exists()` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10598](https://togithub.com/vimeo/psalm/pull/10598)
- Fix language server running with `opcache.save_comments=0` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10614](https://togithub.com/vimeo/psalm/pull/10614)
- Report `MissingConstructor` for natively typed mixed properties by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10615](https://togithub.com/vimeo/psalm/pull/10615)

##### Internal changes

- Bump actions/cache from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/vimeo/psalm/pull/10584](https://togithub.com/vimeo/psalm/pull/10584)
- Baseline update by [@&#8203;jorgsowa](https://togithub.com/jorgsowa)
in
[https://github.com/vimeo/psalm/pull/10593](https://togithub.com/vimeo/psalm/pull/10593)
- Re-work CheckTrivialExprVisitor by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10612](https://togithub.com/vimeo/psalm/pull/10612)
- Minor php-parser tweaks by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10605](https://togithub.com/vimeo/psalm/pull/10605)

#### New Contributors

- [@&#8203;jorgsowa](https://togithub.com/jorgsowa) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10593](https://togithub.com/vimeo/psalm/pull/10593)

**Full Changelog**:
vimeo/psalm@5.20.0...5.21.0

### [`v5.20.0`](https://togithub.com/vimeo/psalm/releases/tag/5.20.0)

[Compare
Source](https://togithub.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 [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10502](https://togithub.com/vimeo/psalm/pull/10502)

##### Fixes

- Fix template, conditional array keys by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10568](https://togithub.com/vimeo/psalm/pull/10568)

**Full Changelog**:
vimeo/psalm@5.19.1...5.20.0

### [`v5.19.1`](https://togithub.com/vimeo/psalm/releases/tag/5.19.1)

[Compare
Source](https://togithub.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
[@&#8203;psalm-suppress](https://togithub.com/psalm-suppress)
DeprecatedClass by
[@&#8203;samlitowitz](https://togithub.com/samlitowitz) in
[https://github.com/vimeo/psalm/pull/10518](https://togithub.com/vimeo/psalm/pull/10518)
- Implement \__set method in SimpleXMLElement stub by
[@&#8203;kthaler](https://togithub.com/kthaler) in
[https://github.com/vimeo/psalm/pull/10536](https://togithub.com/vimeo/psalm/pull/10536)
- Make getrandmax type more specific and unserialize to require
class-string by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10540](https://togithub.com/vimeo/psalm/pull/10540)
- Fix mb_get_info can return null - CI failing bc of reflection by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10543](https://togithub.com/vimeo/psalm/pull/10543)
- make basename & dirname return types more specific by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10545](https://togithub.com/vimeo/psalm/pull/10545)
- add support for extract to set variables for keyed arrays and respect
EXTR_SKIP by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10544](https://togithub.com/vimeo/psalm/pull/10544)
- remove redundat directory separator which caused "//" in path not
found errors by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10542](https://togithub.com/vimeo/psalm/pull/10542)
- Fix empty literal string becomes non-empty-string by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10499](https://togithub.com/vimeo/psalm/pull/10499)

#### New Contributors

- [@&#8203;samlitowitz](https://togithub.com/samlitowitz) made their
first contribution in
[https://github.com/vimeo/psalm/pull/10518](https://togithub.com/vimeo/psalm/pull/10518)
- [@&#8203;kthaler](https://togithub.com/kthaler) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10536](https://togithub.com/vimeo/psalm/pull/10536)

**Full Changelog**:
vimeo/psalm@5.19.0...5.20.0

### [`v5.19.0`](https://togithub.com/vimeo/psalm/releases/tag/5.19.0)

[Compare
Source](https://togithub.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 [@&#8203;sj-i](https://togithub.com/sj-i) in
[https://github.com/vimeo/psalm/pull/10532](https://togithub.com/vimeo/psalm/pull/10532)
- filter_input & filter_var return type more specific by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10498](https://togithub.com/vimeo/psalm/pull/10498)

##### Fixes

- strtok always returns a non-empty-string when it does not return false
by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10497](https://togithub.com/vimeo/psalm/pull/10497)
- Fix [#&#8203;10512](https://togithub.com/vimeo/psalm/issues/10512):
Fixed SessionUpdateTimestampHandlerInterface parameter names by
[@&#8203;zerkms](https://togithub.com/zerkms) in
[https://github.com/vimeo/psalm/pull/10524](https://togithub.com/vimeo/psalm/pull/10524)
- Fix [GH-10465](https://togithub.com/vimeo/psalm/issues/10465) by
[@&#8203;florisluiten](https://togithub.com/florisluiten) in
[https://github.com/vimeo/psalm/pull/10483](https://togithub.com/vimeo/psalm/pull/10483)
- Fix callable without args not handled correctly by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10500](https://togithub.com/vimeo/psalm/pull/10500)
- Add error when using readonly property in by-ref arg by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10505](https://togithub.com/vimeo/psalm/pull/10505)
- fix: [#&#8203;10496](https://togithub.com/vimeo/psalm/issues/10496)
[#&#8203;10503](https://togithub.com/vimeo/psalm/issues/10503) by
[@&#8203;ging-dev](https://togithub.com/ging-dev) in
[https://github.com/vimeo/psalm/pull/10508](https://togithub.com/vimeo/psalm/pull/10508)

#### New Contributors

- [@&#8203;florisluiten](https://togithub.com/florisluiten) made their
first contribution in
[https://github.com/vimeo/psalm/pull/10483](https://togithub.com/vimeo/psalm/pull/10483)

**Full Changelog**:
vimeo/psalm@5.18.0...5.19.0

### [`v5.18.0`](https://togithub.com/vimeo/psalm/releases/tag/5.18.0)

[Compare
Source](https://togithub.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
[@&#8203;delolmo](https://togithub.com/delolmo) in
[https://github.com/vimeo/psalm/pull/10493](https://togithub.com/vimeo/psalm/pull/10493)

##### Fixes

- Fix [#&#8203;10460](https://togithub.com/vimeo/psalm/issues/10460) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10464](https://togithub.com/vimeo/psalm/pull/10464)
- Emit AfterCodebasePopulatedEvent even on partial scans by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10457](https://togithub.com/vimeo/psalm/pull/10457)
- Small assertion fix by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10455](https://togithub.com/vimeo/psalm/pull/10455)
- Fix shaped array class string key combination by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10450](https://togithub.com/vimeo/psalm/pull/10450)
- Fix remaining POSIX-only absolute path detection by
[@&#8203;theodorejb](https://togithub.com/theodorejb) in
[https://github.com/vimeo/psalm/pull/10452](https://togithub.com/vimeo/psalm/pull/10452)
- dont combine empty string with numeric-string by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10459](https://togithub.com/vimeo/psalm/pull/10459)
- Fix type not equal when parent by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10477](https://togithub.com/vimeo/psalm/pull/10477)
- Use same parameter names in stubs by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10480](https://togithub.com/vimeo/psalm/pull/10480)
- fix false positive ArgumentTypeCoercion for callback param by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10454](https://togithub.com/vimeo/psalm/pull/10454)
- report error for invalid array key type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10481](https://togithub.com/vimeo/psalm/pull/10481)
- fix literal int/string comparisons only using one literal by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10484](https://togithub.com/vimeo/psalm/pull/10484)
- add InvalidArgument error when passing false to true param by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10488](https://togithub.com/vimeo/psalm/pull/10488)
- Fix Uncaught RuntimeException: PHP Error: Uninitialized string offset
0 when $pattern is empty by
[@&#8203;iMu3ic](https://togithub.com/iMu3ic) in
[https://github.com/vimeo/psalm/pull/10489](https://togithub.com/vimeo/psalm/pull/10489)

##### Internal changes

- fix composer scripts running with inconsistent php versions by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10463](https://togithub.com/vimeo/psalm/pull/10463)
- update fidry/cpu-core-counter dependency by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10456](https://togithub.com/vimeo/psalm/pull/10456)
- fix psalm v4 hardcoded in tests by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10475](https://togithub.com/vimeo/psalm/pull/10475)

##### New Contributors

- [@&#8203;iMu3ic](https://togithub.com/iMu3ic) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10489](https://togithub.com/vimeo/psalm/pull/10489)
- [@&#8203;delolmo](https://togithub.com/delolmo) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10493](https://togithub.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>
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://togithub.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://togithub.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://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
([#&#8203;3028](https://togithub.com/phpstan/phpstan-src/pull/3028)),
[#&#8203;7553](https://togithub.com/phpstan/phpstan/issues/7553), thanks
[@&#8203;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
-
phpstan/phpstan-src@281a87d
- [#&#8203;3020](https://togithub.com/phpstan/phpstan-src/pull/3020),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- [#&#8203;3022](https://togithub.com/phpstan/phpstan-src/pull/3022),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- [#&#8203;3023](https://togithub.com/phpstan/phpstan-src/pull/3023),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- BetterNoopRule - take advantage of impure points
(phpstan/phpstan-src@a647052),
[#&#8203;10389](https://togithub.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
([#&#8203;3050](https://togithub.com/phpstan/phpstan-src/pull/3050)),
[#&#8203;9704](https://togithub.com/phpstan/phpstan/issues/9704), thanks
[@&#8203;ruudk](https://togithub.com/ruudk)!
- RuleTestCase - fail on PHP warnings, notices etc.
([#&#8203;3030](https://togithub.com/phpstan/phpstan-src/pull/3030)),
thanks [@&#8203;janedbal](https://togithub.com/janedbal)!
- Check duplicate assignment of redeclared promoted readonly properties
([#&#8203;3049](https://togithub.com/phpstan/phpstan-src/pull/3049)),
[#&#8203;8101](https://togithub.com/phpstan/phpstan/issues/8101),
[#&#8203;9863](https://togithub.com/phpstan/phpstan/issues/9863),
[#&#8203;9864](https://togithub.com/phpstan/phpstan/issues/9864), thanks
[@&#8203;schlndh](https://togithub.com/schlndh)!
- Remove line from "nikic/php-parser" error message
([#&#8203;2845](https://togithub.com/phpstan/phpstan-src/pull/2845)),
thanks [@&#8203;mvorisek](https://togithub.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),
[#&#8203;1205](https://togithub.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
([#&#8203;2746](https://togithub.com/phpstan/phpstan-src/pull/2746)),
thanks [@&#8203;derickr](https://togithub.com/derickr)!
- Track invalidated `$this` and used variables after invoking closure
([#&#8203;2980](https://togithub.com/phpstan/phpstan-src/pull/2980))
- Support `@phan-` prefixes on recognized PHPDoc tags
([#&#8203;3000](https://togithub.com/phpstan/phpstan-src/pull/3000)),
thanks [@&#8203;anomiex](https://togithub.com/anomiex)!
- `pure-callable` and `pure-Closure` PHPDoc types
(phpstan/phpstan-src@cdaff5f)
- `highlight_string()` flips side-effects depending on $return
([#&#8203;3021](https://togithub.com/phpstan/phpstan-src/pull/3021)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Improve types for predefined constants
([#&#8203;3054](https://togithub.com/phpstan/phpstan-src/pull/3054)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Make `AccessoryNonFalsyStringType::toInteger()` return `IntegerType`
instead of non-zero
([#&#8203;3018](https://togithub.com/phpstan/phpstan-src/pull/3018)),
[#&#8203;10893](https://togithub.com/phpstan/phpstan/issues/10893),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!
- Filter scope by non-empty array after foreach regardless of
`polluteScopeWithAlwaysIterableForeach`
([#&#8203;3029](https://togithub.com/phpstan/phpstan-src/pull/3029)),
[#&#8203;10922](https://togithub.com/phpstan/phpstan/issues/10922),
thanks [@&#8203;VincentLanglet](https://togithub.com/VincentLanglet)!
- Preserve large arrays with same keys through union
([#&#8203;3032](https://togithub.com/phpstan/phpstan-src/pull/3032)),
[#&#8203;9397](https://togithub.com/phpstan/phpstan/issues/9397),
[#&#8203;10080](https://togithub.com/phpstan/phpstan/issues/10080),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Fix `count($x) > $n === true` negation
([#&#8203;3037](https://togithub.com/phpstan/phpstan-src/pull/3037)),
[#&#8203;10952](https://togithub.com/phpstan/phpstan/issues/10952),
thanks [@&#8203;rvanvelzen](https://togithub.com/rvanvelzen)!
- Fix NAN not accepting NAN
([#&#8203;3036](https://togithub.com/phpstan/phpstan-src/pull/3036)),
[#&#8203;10956](https://togithub.com/phpstan/phpstan/issues/10956),
[#&#8203;10297](https://togithub.com/phpstan/phpstan/issues/10297),
thanks [@&#8203;rvanvelzen](https://togithub.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`
([#&#8203;3016](https://togithub.com/phpstan/phpstan-src/pull/3016)),
thanks [@&#8203;janedbal](https://togithub.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()`
([#&#8203;3038](https://togithub.com/phpstan/phpstan-src/pull/3038)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Implement `Type::isOffsetAccessLegal()` to detect offset access that
crashes even in `isset()`
([#&#8203;3045](https://togithub.com/phpstan/phpstan-src/pull/3045)),
[#&#8203;8393](https://togithub.com/phpstan/phpstan/issues/8393),
[#&#8203;10926](https://togithub.com/phpstan/phpstan/issues/10926),
thanks [@&#8203;rajyan](https://togithub.com/rajyan)!
- Specify types on `match()` condition correctly
([#&#8203;3053](https://togithub.com/phpstan/phpstan-src/pull/3053)),
[#&#8203;10974](https://togithub.com/phpstan/phpstan/issues/10974),
[#&#8203;9694](https://togithub.com/phpstan/phpstan/issues/9694), thanks
[@&#8203;rvanvelzen](https://togithub.com/rvanvelzen)!
- `json_decode` with force array flag: subtract all objects, not just
stdClass
([#&#8203;3052](https://togithub.com/phpstan/phpstan-src/pull/3052)),
thanks [@&#8203;rajyan](https://togithub.com/rajyan)!
- Fix `strlen($x) > $n === true` negation
([#&#8203;3040](https://togithub.com/phpstan/phpstan-src/pull/3040)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Support multi-byte string function variants
([#&#8203;3039](https://togithub.com/phpstan/phpstan-src/pull/3039)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Final scope from `Continue_` points should not be used for `while
(true)`
([#&#8203;3057](https://togithub.com/phpstan/phpstan-src/pull/3057)),
[#&#8203;10980](https://togithub.com/phpstan/phpstan/issues/10980),
thanks [@&#8203;greew](https://togithub.com/greew)!
- Fix enum performance problem
([#&#8203;3062](https://togithub.com/phpstan/phpstan-src/pull/3062),
[#&#8203;3060](https://togithub.com/phpstan/phpstan-src/pull/3060)),
[#&#8203;10979](https://togithub.com/phpstan/phpstan/issues/10979),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- NULL and null as a property default value are treated differently when
overriding a parent property
([#&#8203;3063](https://togithub.com/phpstan/phpstan-src/pull/3063)),
[#&#8203;10987](https://togithub.com/phpstan/phpstan/issues/10987),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

# Function signature fixes 🤖

- Make the url key of metadata returned by `stream_get_meta_data()`
optional
([#&#8203;3024](https://togithub.com/phpstan/phpstan-src/pull/3024)),
[#&#8203;10887](https://togithub.com/phpstan/phpstan/issues/10887),
thanks [@&#8203;hirokinoue](https://togithub.com/hirokinoue)!
- Narrow `Closure::bind` `$newScope` param
([#&#8203;2817](https://togithub.com/phpstan/phpstan-src/pull/2817)),
thanks [@&#8203;mvorisek](https://togithub.com/mvorisek)!
- Infer object type mysqli_fetch_object
([#&#8203;2675](https://togithub.com/phpstan/phpstan/issues/2675))
([#&#8203;2675](https://togithub.com/phpstan/phpstan-src/pull/2675)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Fix `Imagick::identifyImage()` return type
([#&#8203;3017](https://togithub.com/phpstan/phpstan-src/pull/3017)),
thanks [@&#8203;SVillette](https://togithub.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
([#&#8203;2461](https://togithub.com/phpstan/phpstan-src/pull/2461)),
thanks [@&#8203;szepeviktor](https://togithub.com/szepeviktor)!
- Fix various typos
([#&#8203;2463](https://togithub.com/phpstan/phpstan-src/pull/2463)),
thanks [@&#8203;szepeviktor](https://togithub.com/szepeviktor)!
- Added text regarding patch issues during installation
([#&#8203;2670](https://togithub.com/phpstan/phpstan-src/pull/2670)),
thanks [@&#8203;mt-satak](https://togithub.com/mt-satak)!
- Fix typo in ArgumentsNormalizer
([#&#8203;2705](https://togithub.com/phpstan/phpstan-src/pull/2705)),
thanks [@&#8203;mad-briller](https://togithub.com/mad-briller)!
- Rich PHPDoc for ExceptionTypeResolver
(phpstan/phpstan-src@e7ab4f7)
- Hide internal commands
([#&#8203;2833](https://togithub.com/phpstan/phpstan-src/pull/2833)),
thanks [@&#8203;rvanvelzen](https://togithub.com/rvanvelzen)!
- Test invalidated object in static closure
([#&#8203;2981](https://togithub.com/phpstan/phpstan-src/pull/2981)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- PHPDoc: address multiple variables defined in one
[@&#8203;param](https://togithub.com/param)
([#&#8203;3001](https://togithub.com/phpstan/phpstan-src/pull/3001)),
thanks [@&#8203;Muqsit](https://togithub.com/Muqsit)!
- Do not assume every contributor uses PhpStorm
(phpstan/phpstan-src@d1834e6)
- TypeInferenceTestCase: ability to disable implicit throws
([#&#8203;3015](https://togithub.com/phpstan/phpstan-src/pull/3015)),
thanks [@&#8203;janedbal](https://togithub.com/janedbal)!
- Slightly reduce comparing and calling methods for trivial
optimizations
([#&#8203;3004](https://togithub.com/phpstan/phpstan-src/pull/3004)),
[#&#8203;10926](https://togithub.com/phpstan/phpstan/issues/10926),
thanks [@&#8203;zonuexe](https://togithub.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
([#&#8203;3035](https://togithub.com/phpstan/phpstan-src/pull/3035)),
thanks [@&#8203;axlon](https://togithub.com/axlon)!
- Make ResultCacheEndToEndTest pass level 9
([#&#8203;3055](https://togithub.com/phpstan/phpstan-src/pull/3055)),
[#&#8203;10977](https://togithub.com/phpstan/phpstan/issues/10977),
thanks [@&#8203;AJenbo](https://togithub.com/AJenbo)!
- ClassReflection - cache enum cases
(phpstan/phpstan-src@39ce042),
[#&#8203;10979](https://togithub.com/phpstan/phpstan/issues/10979)

</details>

<details>
<summary>vimeo/psalm (vimeo/psalm)</summary>

### [`v5.24.0`](https://togithub.com/vimeo/psalm/releases/tag/5.24.0)

[Compare
Source](https://togithub.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
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10829](https://togithub.com/vimeo/psalm/pull/10829)
- Allow more callable types as subtypes of `callable` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10805](https://togithub.com/vimeo/psalm/pull/10805)
- Report `parent` being used in callable context when the class does not
extend anything by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10838](https://togithub.com/vimeo/psalm/pull/10838)
- Report error for additional deprecated arg types in PHP 8.1/8.3 by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10824](https://togithub.com/vimeo/psalm/pull/10824)
- Add MissingClassConstType Issue by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/10828](https://togithub.com/vimeo/psalm/pull/10828)
- Enforce parameter names for consistent constructors by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10821](https://togithub.com/vimeo/psalm/pull/10821)
- Add misc missing errors for invalid callable methods by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10839](https://togithub.com/vimeo/psalm/pull/10839)

##### Fixes

- Forbid named arguments for ArrayAcccess methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10804](https://togithub.com/vimeo/psalm/pull/10804)
- Don't crash on invalid templates by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/10806](https://togithub.com/vimeo/psalm/pull/10806)
- report error for single param name mismatch too since named args can
even be used then by [@&#8203;kkmuffme](https://togithub.com/kkmuffme)
in
[https://github.com/vimeo/psalm/pull/10822](https://togithub.com/vimeo/psalm/pull/10822)
- add support for named arguments for filter_var and filter_input by
[@&#8203;pilif](https://togithub.com/pilif) in
[https://github.com/vimeo/psalm/pull/10815](https://togithub.com/vimeo/psalm/pull/10815)
- When inside isset, make array fetch result nullable by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10756](https://togithub.com/vimeo/psalm/pull/10756)
- Promoted properties missing in extended \__construct should report
PropertyNotSetInConstructor by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10817](https://togithub.com/vimeo/psalm/pull/10817)
- Updating signature of `getmxrr()` by
[@&#8203;ThomasLandauer](https://togithub.com/ThomasLandauer) in
[https://github.com/vimeo/psalm/pull/10847](https://togithub.com/vimeo/psalm/pull/10847)
- Improve string-int juggle consistency in array keys and display for
int-like strings in type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10814](https://togithub.com/vimeo/psalm/pull/10814)
- Fix storage not available in thread for intersection doc types by
[@&#8203;simonberger](https://togithub.com/simonberger) in
[https://github.com/vimeo/psalm/pull/10856](https://togithub.com/vimeo/psalm/pull/10856)
- Don't emit MissingOverrideAttribute for implicit Stringable
implementations by [@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/10858](https://togithub.com/vimeo/psalm/pull/10858)
- Specify array return type of session_get_cookie_params by
[@&#8203;jorgsowa](https://togithub.com/jorgsowa) in
[https://github.com/vimeo/psalm/pull/10859](https://togithub.com/vimeo/psalm/pull/10859)
- Unknown [@&#8203;psalm](https://togithub.com/psalm) annotation should
not make whole docblock invalid by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10885](https://togithub.com/vimeo/psalm/pull/10885)
- Add `mail` to impure functions list by
[@&#8203;smaddock](https://togithub.com/smaddock) in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- Update PHP 8.2 Call map delta with refined types for string comparison
functions by [@&#8203;gsteel](https://togithub.com/gsteel) in
[https://github.com/vimeo/psalm/pull/10883](https://togithub.com/vimeo/psalm/pull/10883)

##### Docs

- document that
[@&#8203;psalm-internal](https://togithub.com/psalm-internal) works for
namespace + class too by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10866](https://togithub.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
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10842](https://togithub.com/vimeo/psalm/pull/10842)
- Explicitly set value in config to fix warning in tests by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/10843](https://togithub.com/vimeo/psalm/pull/10843)
- \[PHP 8.4] Fixes for implicit nullability deprecation by
[@&#8203;Ayesh](https://togithub.com/Ayesh) in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- Throw exception instead of silently logging issues occurred during
scan by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/10902](https://togithub.com/vimeo/psalm/pull/10902)

##### Other changes

- Fix conditional on non empty literal string by
[@&#8203;VincentLanglet](https://togithub.com/VincentLanglet) in
[https://github.com/vimeo/psalm/pull/10912](https://togithub.com/vimeo/psalm/pull/10912)
- Ignore jsonSerialize for implementors of JsonSerializable by
[@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- Add XML functions to ImpureFunctionsList
[#&#8203;10882](https://togithub.com/vimeo/psalm/issues/10882) by
[@&#8203;DKhalil](https://togithub.com/DKhalil) in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.com/vimeo/psalm/pull/10887)

##### New Contributors

- [@&#8203;Ayesh](https://togithub.com/Ayesh) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10832](https://togithub.com/vimeo/psalm/pull/10832)
- [@&#8203;smaddock](https://togithub.com/smaddock) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10923](https://togithub.com/vimeo/psalm/pull/10923)
- [@&#8203;josephwynn-sc](https://togithub.com/josephwynn-sc) made their
first contribution in
[https://github.com/vimeo/psalm/pull/10891](https://togithub.com/vimeo/psalm/pull/10891)
- [@&#8203;DKhalil](https://togithub.com/DKhalil) made their first
contribution in
[https://github.com/vimeo/psalm/pull/10887](https://togithub.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://togithub.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

Labels

release:feature The PR will be included in 'Features' section of the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ParamNameMismatch not reported for __construct

2 participants