Skip to content
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

Adding node information to DeprecatedScopeResolver::isScopeDeprecated? #106

Closed
bbrala opened this issue Jan 7, 2024 · 11 comments
Closed

Comments

@bbrala
Copy link

bbrala commented Jan 7, 2024

I wonder, sometimes I need more context while determining if a node in a scope is deprecated. Mostly to 'undeprecate' sometime. Would you mind if node was added as context/information to DeprecatedScopeResolver::isScopeDeprecated?

I'm trying to target the deprecated_function() in the following code:

        \Drupal\Component\Utility\DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => deprecated_function_call(), fn() => count([]));

        DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => deprecated_function_call(), fn() => count([]));

        DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', function() {
            deprecated_function_call();
        }, function() {
            count([]);
        });

I also tried other avenues, like, trying to pragmaticly add lines to ignore through a visitor. I could also use NodeVisitor and then NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN, but that means no code checks in all of the children.

I'm kinda stumped right now, but would love to be able to only exclude deprecations from those node (be it anonimous functions, or whatever).

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

#73 is actually realated seeing the issue description, but the PR actually doesnt solve that issue it seems

@ondrejmirtes
Copy link
Member

With this change in PHPStan you'll be able to read it from Scope: phpstan/phpstan-src@9be1376

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

Oh wow. Thank you for the quick turnaround, I'll look into it right away

@ondrejmirtes
Copy link
Member

Require phpstan/phpstan 1.10.x-dev until this is released 😊

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

yeah i did that, unfrotunately i get an empty array in my test when i try the following in my test

<?php

declare(strict_types=1);

namespace mglaman\PHPStanDrupal\DeprecatedScope;

use PHPStan\Analyser\Scope;
use PHPStan\Rules\Deprecations\DeprecatedScopeResolver;

final class DeprecatedHelperScope implements DeprecatedScopeResolver
{

    public function isScopeDeprecated(Scope $scope): bool
    {
        var_dump($scope->getFunctionCallStack());
        return true;
    }
}
Warning:       No code coverage driver available

F                                                                   1 / 1 (100%)array(0) {
}
array(0) {
}
array(0) {
}

Not sure why, the scope is not a mutating scope though, or do i need to add is somewhere else also?

This is my composer.json

    "require": {
        "php": "^7.4 || ^8.0",
        "symfony/finder": "^4.2 || ^5.0 || ^6.0 || ^7.0",
        "phpstan/phpstan": "1.10.x-dev",
        "phpstan/phpstan-deprecation-rules": "^1.1.4",
        "symfony/yaml": "^4.2|| ^5.0 || ^6.0 || ^7.0",
        "webflo/drupal-finder": "^1.2"
    },

Php 8.1 also.

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

Seems the issue is that the DeprecatedScopeResolver does not trigger on anything below a function. When i add:

        var_dump($scope->getFunctionName());
        var_dump($scope->getFunctionCallStack());
        return true;

I get

F                                                                   1 / 1 (100%)string(19) "methodCallingThings"
array(0) {
}
string(19) "methodCallingThings"
array(0) {
}
string(19) "methodCallingThings"
array(0) {
}
string(19) "methodCallingThings"
array(0) {
}
string(19) "methodCallingThings"

Which means it only gets to the method inwhich there are the statements. This is the full fixture:

<?php

namespace GroupLegacy;

use Drupal\Component\Utility\DeprecationHelper;
use function Deprecated\deprecated_function_call;

final class FooTest {

    public function methodCallingThings(): void {

        \Drupal\Component\Utility\DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => deprecated_function_call(), fn() => count([]));

        DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => deprecated_function_call(), fn() => count([]));

        deprecated_function_call();

        DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', function() {
            deprecated_function_call();
        }, function() {
            count([]);
        });

    }

}

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

Hmm, thinking about this. Do i need to write a rule that targets that specific deprecation (i hope not)? Or do i need to add a rule that targets arrow functions (and anonimous ones) so it can actually start checking those through the scope resolver?

@ondrejmirtes
Copy link
Member

  1. What's your vendor/bin/phpstan --version? I added one more commit that fixes this for anonymous functions.
  2. If you're struggling with this, you've seen the rule in phpstan-src that tests the Scope getter. You can add more test cases there and test if and where the call stack gets lost.

@bbrala
Copy link
Author

bbrala commented Jan 7, 2024

I mightve been too fast then. I'll look again tonight.

renovate bot added a commit to ben-challis/sql-migrations that referenced this issue Jan 9, 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.54`
-> `^1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rector/rector](https://getrector.org)
([source](https://togithub.com/rectorphp/rector)) | `^0.18.13` ->
`^0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(phpstan/phpstan-src@8b6260c),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(phpstan/phpstan-src@bbd9a68),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(phpstan/phpstan-src@9dac90d),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(phpstan/phpstan-src@2270051),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(phpstan/phpstan-src@9be1376),
[phpstan/phpstan-deprecation-rules#106

</details>

<details>
<summary>rectorphp/rector (rector/rector)</summary>

###
[`v0.19.0`](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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/ben-challis/sql-migrations).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to Lendable/aggregate that referenced this issue Jan 9, 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.52`
-> `^1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.52/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.52/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rector/rector](https://getrector.org)
([source](https://togithub.com/rectorphp/rector)) | `^0.18.13` ->
`^0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(phpstan/phpstan-src@8b6260c),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(phpstan/phpstan-src@bbd9a68),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(phpstan/phpstan-src@9dac90d),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(phpstan/phpstan-src@2270051),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(phpstan/phpstan-src@9be1376),
[phpstan/phpstan-deprecation-rules#106

###
[`v1.10.54`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.54)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.53...1.10.54)

# Bleeding edge 🔪

- Revert "ParamAttributesRule - promoted property attribute needs to
target both parameters and properties"
(phpstan/phpstan-src@02f66df),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- See PHP internals discussion:
https://externals.io/message/111942#112021

*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 🔧

- UsedNamesRule - level 0
([#&#8203;2849](https://togithub.com/phpstan/phpstan-src/pull/2849)),
thanks [@&#8203;lulco](https://togithub.com/lulco)!

# Bugfixes 🐛

- Simplify TooWideClosureReturnTypehintRule
(phpstan/phpstan-src@a81df66)
- Fix falsy isset for all expressions
(phpstan/phpstan-src@af14d50),
[#&#8203;10373](https://togithub.com/phpstan/phpstan/issues/10373)

###
[`v1.10.53`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.53)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.52...1.10.53)

# Improvements 🔧

- Impl `str_increment` / `str_decrement` return type extension
([#&#8203;2776](https://togithub.com/phpstan/phpstan-src/pull/2776)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix loading polyfills twice
(phpstan/phpstan@3e7c7c7?w=1),
[#&#8203;10387](https://togithub.com/phpstan/phpstan/issues/10387)
- `array_udiff()` comparator return type is too strict
([#&#8203;2822](https://togithub.com/phpstan/phpstan-src/pull/2822)),
[#&#8203;9697](https://togithub.com/phpstan/phpstan/issues/9697), thanks
[@&#8203;staabm](https://togithub.com/staabm)!

# Internals 🔍

- Simplify default return path in extensions
([#&#8203;2816](https://togithub.com/phpstan/phpstan-src/pull/2816)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

</details>

<details>
<summary>rectorphp/rector (rector/rector)</summary>

###
[`v0.19.0`](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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/Lendable/aggregate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marcin Michalski <marcin.michalski@lendable.co.uk>
@mglaman
Copy link
Contributor

mglaman commented Jan 10, 2024

Thanks for the update @ondrejmirtes I'm going to help dig in :)

renovate bot added a commit to Lendable/composer-license-checker that referenced this issue Jan 11, 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.54`
-> `^1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rector/rector](https://getrector.org)
([source](https://togithub.com/rectorphp/rector)) | `^0.18.13` ->
`^0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/rector%2frector/0.18.13/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(phpstan/phpstan-src@8b6260c),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(phpstan/phpstan-src@bbd9a68),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(phpstan/phpstan-src@9dac90d),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(phpstan/phpstan-src@2270051),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(phpstan/phpstan-src@9be1376),
[phpstan/phpstan-deprecation-rules#106

</details>

<details>
<summary>rectorphp/rector (rector/rector)</summary>

###
[`v0.19.0`](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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/Lendable/composer-license-checker).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marcin Michalski <marcin.michalski@lendable.co.uk>
github-merge-queue bot pushed a commit to Lendable/clock that referenced this issue Jan 12, 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 |
|---|---|---|---|---|---|
|
[lendable/composer-license-checker](https://togithub.com/Lendable/composer-license-checker)
| `^1.0.4` -> `^1.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/lendable%2fcomposer-license-checker/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/lendable%2fcomposer-license-checker/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/lendable%2fcomposer-license-checker/1.0.4/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/lendable%2fcomposer-license-checker/1.0.4/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [php-cs-fixer/shim](https://togithub.com/PHP-CS-Fixer/shim) |
`^3.41.1` -> `^3.46.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/php-cs-fixer%2fshim/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/php-cs-fixer%2fshim/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/php-cs-fixer%2fshim/3.41.1/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/php-cs-fixer%2fshim/3.41.1/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpstan/phpstan](https://togithub.com/phpstan/phpstan) | `^1.10.50`
-> `^1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.50/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.50/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpunit/phpunit](https://phpunit.de/)
([source](https://togithub.com/sebastianbergmann/phpunit)) | `^10.5.3`
-> `^10.5.5` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpunit%2fphpunit/10.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpunit%2fphpunit/10.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpunit%2fphpunit/10.5.3/10.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpunit%2fphpunit/10.5.3/10.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rector/rector](https://getrector.org)
([source](https://togithub.com/rectorphp/rector)) | `^0.18` -> `^0.19` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/rector%2frector/0.18.0/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/rector%2frector/0.18.0/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Lendable/composer-license-checker
(lendable/composer-license-checker)</summary>

###
[`v1.1.0`](https://togithub.com/Lendable/composer-license-checker/compare/1.0.4...1.1.0)

[Compare
Source](https://togithub.com/Lendable/composer-license-checker/compare/1.0.4...1.1.0)

</details>

<details>
<summary>PHP-CS-Fixer/shim (php-cs-fixer/shim)</summary>

###
[`v3.46.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.45.0...v3.46.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.45.0...v3.46.0)

###
[`v3.45.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.44.0...v3.45.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.44.0...v3.45.0)

###
[`v3.44.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.1...v3.44.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.1...v3.44.0)

###
[`v3.43.1`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.0...v3.43.1)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.0...v3.43.1)

###
[`v3.43.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.42.0...v3.43.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.42.0...v3.43.0)

###
[`v3.42.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.41.1...v3.42.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.41.1...v3.42.0)

</details>

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(https://github.com/phpstan/phpstan-src/commit/8b6260c21bacbfd653d26b9a8abef7996fd3fe46),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(https://github.com/phpstan/phpstan-src/commit/bbd9a68478abbc500b6398968cc85d0d1ae8d3eb),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(https://github.com/phpstan/phpstan-src/commit/9dac90dfd5fc809dd84fdac0532ecd51c6ae66bf),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(https://github.com/phpstan/phpstan-src/commit/22700511d91b748240da0ac8b697f2ab409aad21),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(https://github.com/phpstan/phpstan-src/commit/9be137675ebc41be5c9c7c230f96cab4dbf1f08e),
[https://github.com/phpstan/phpstan-deprecation-rules/issues/106](https://togithub.com/phpstan/phpstan-deprecation-rules/issues/106)

###
[`v1.10.54`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.54)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.53...1.10.54)

# Bleeding edge 🔪

- Revert "ParamAttributesRule - promoted property attribute needs to
target both parameters and properties"
(https://github.com/phpstan/phpstan-src/commit/02f66df2a2997ad39ee25c92b6a7f7102f09514f),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- See PHP internals discussion:
https://externals.io/message/111942#112021

*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 🔧

- UsedNamesRule - level 0
([#&#8203;2849](https://togithub.com/phpstan/phpstan-src/pull/2849)),
thanks [@&#8203;lulco](https://togithub.com/lulco)!

# Bugfixes 🐛

- Simplify TooWideClosureReturnTypehintRule
(https://github.com/phpstan/phpstan-src/commit/a81df66485ea7c94655d70f322775e84bef871f9)
- Fix falsy isset for all expressions
(https://github.com/phpstan/phpstan-src/commit/af14d50e2b5d1b2cf91813059cdc827be63fdb20),
[#&#8203;10373](https://togithub.com/phpstan/phpstan/issues/10373)

###
[`v1.10.53`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.53)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.52...1.10.53)

# Improvements 🔧

- Impl `str_increment` / `str_decrement` return type extension
([#&#8203;2776](https://togithub.com/phpstan/phpstan-src/pull/2776)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix loading polyfills twice
(https://github.com/phpstan/phpstan/commit/3e7c7c7c6306157e6967ef436e952aeba1097edb?w=1),
[#&#8203;10387](https://togithub.com/phpstan/phpstan/issues/10387)
- `array_udiff()` comparator return type is too strict
([#&#8203;2822](https://togithub.com/phpstan/phpstan-src/pull/2822)),
[#&#8203;9697](https://togithub.com/phpstan/phpstan/issues/9697), thanks
[@&#8203;staabm](https://togithub.com/staabm)!

# Internals 🔍

- Simplify default return path in extensions
([#&#8203;2816](https://togithub.com/phpstan/phpstan-src/pull/2816)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

###
[`v1.10.52`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.52)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.51...1.10.52)

# Improvements 🔧

- Do not allow to generate baseline when reflection error occurs
(https://github.com/phpstan/phpstan-src/commit/78ea9a621093cde38dd382cc67557c8b211589d8)
- Show internal errors that occured when generating a baseline
(https://github.com/phpstan/phpstan-src/commit/c997ea9eefb8a57f5e273cff3b3338f423e755b6)

# Bugfixes 🐛

- Load PHP polyfills in bootstrap.php
(https://github.com/phpstan/phpstan/commit/21df2d347a49a51b3377e4b6553aa110e7072eb6),
[#&#8203;10375](https://togithub.com/phpstan/phpstan/issues/10375)

###
[`v1.10.51`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.51)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.50...1.10.51)

# Bleeding edge 🔪

- ParamAttributesRule - promoted property attribute needs to target both
parameters and properties
(https://github.com/phpstan/phpstan-src/commit/25d15526dbe59216f2b42aaa88a2be23bf9cbf44),
[#&#8203;10298](https://togithub.com/phpstan/phpstan/issues/10298)
- More precise `RecursiveIteratorIterator::__construct()` parameter
types
([#&#8203;2835](https://togithub.com/phpstan/phpstan-src/pull/2835)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- PhpDocParser: add config for lines in its AST & enable ignoring errors
within PHPDocs
([#&#8203;2807](https://togithub.com/phpstan/phpstan-src/pull/2807)),
thanks [@&#8203;janedbal](https://togithub.com/janedbal)!

*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 🔧

- Missing ThrowExprTypeRule - level 3
(https://github.com/phpstan/phpstan-src/commit/0359ebc78fa7bc5ed1b3b4032c68363ce70ab673)
- Analyse stubs only when not only files are analysed
(https://github.com/phpstan/phpstan-src/commit/402024091b215dca7d91b74c415293323d2dbadc)
- Nicer error message in case of memory limit exhaustion in child
process
(https://github.com/phpstan/phpstan-src/commit/816be99361d263df24bf1e7fa078df62fb63d1d7)

# Bugfixes 🐛

- Narrow `ReflectionEnum::getBackingType()` after
`ReflectionEnum::isBacked()`
([#&#8203;2830](https://togithub.com/phpstan/phpstan-src/pull/2830)),
[#&#8203;10167](https://togithub.com/phpstan/phpstan/issues/10167),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Fix coalescing on an optional array offset
([#&#8203;2834](https://togithub.com/phpstan/phpstan-src/pull/2834)),
[#&#8203;10317](https://togithub.com/phpstan/phpstan/issues/10317),
thanks [@&#8203;rvanvelzen](https://togithub.com/rvanvelzen)!
- More precise `??` type inference
(https://github.com/phpstan/phpstan-src/commit/d801919e356a8cecc33b06046311aa036d2492ff),
[#&#8203;10327](https://togithub.com/phpstan/phpstan/issues/10327)

# Internals 🔍

- phpstan-src is now downgraded for PHP 7.2+ with
[`ondrejmirtes/simple-downgrader`](https://togithub.com/ondrejmirtes/simple-downgrader)
- Forward-compatible changes with PHP-Parser 5
(https://github.com/phpstan/phpstan-src/commit/436bd791bf256ca59334f2746e70a58d581d8574,
https://github.com/phpstan/phpstan-src/commit/7eb66f6bd643fc95f8353b3b273c29514ddd8619,
https://github.com/phpstan/phpstan-src/commit/bf0b138fbed6fb0960ca696869cc9f5f787d4261),
[#&#8203;5086](https://togithub.com/phpstan/phpstan/issues/5086)
- Use `str_starts_with()` and `str_contains()` instead of `strpos()`
([#&#8203;2841](https://togithub.com/phpstan/phpstan-src/pull/2841)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!
- Building preload script - sort by name for reproducible builds
(https://github.com/phpstan/phpstan-src/commit/995de26a4b8009c4e89159683c4e602290dbc508)
- Lazier creation of ParameterAcceptor
([#&#8203;2843](https://togithub.com/phpstan/phpstan-src/pull/2843)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Use const instead of properties
([#&#8203;2815](https://togithub.com/phpstan/phpstan-src/pull/2815)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!
- PhpDocValueRule: cheapest check first
([#&#8203;2824](https://togithub.com/phpstan/phpstan-src/pull/2824)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Faster `ParametersAcceptorSelector::combine()`
([#&#8203;2851](https://togithub.com/phpstan/phpstan-src/pull/2851)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

</details>

<details>
<summary>sebastianbergmann/phpunit (phpunit/phpunit)</summary>

###
[`v10.5.5`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.4...10.5.5)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.4...10.5.5)

###
[`v10.5.4`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.3...10.5.4)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.3...10.5.4)

</details>

<details>
<summary>rectorphp/rector (rector/rector)</summary>

###
[`v0.19.0`](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

###
[`v0.18.13`](https://togithub.com/rectorphp/rector/releases/tag/0.18.13):
Released Rector 0.18.13

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.12...0.18.13)

#### New Features :partying_face:

- \[DeadCode] Add Function\_ support on RemoveUselessReturnTagRector
([#&#8203;5325](https://togithub.com/rectorphp/rector-src/pull/5325))
- \[TypeDeclaration] Add MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5327](https://togithub.com/rectorphp/rector-src/pull/5327))
- \[DeadCode] Add Function\_ support on RemoveUselessParamTagRector
([#&#8203;5331](https://togithub.com/rectorphp/rector-src/pull/5331))
- \[DeadCode] Add RemoveNullTagValueNodeRector
([#&#8203;5352](https://togithub.com/rectorphp/rector-src/pull/5352))

<br>

#### Bugfixes :bug:

- \[Php83] Fix const from applying incorrect types
([#&#8203;5326](https://togithub.com/rectorphp/rector-src/pull/5326)),
Thanks [@&#8203;peterfox](https://togithub.com/peterfox)!
- \[TypeDeclaration] Fix missing change type to DateTimeInterface on
MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5329](https://togithub.com/rectorphp/rector-src/pull/5329))
- \[TypeDeclaration] Handle DateTimeInterface from use statement on
MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5330](https://togithub.com/rectorphp/rector-src/pull/5330))
- \[TypeDeclaration] Handle assign $this on
TypedPropertyFromAssignsRector
([#&#8203;5333](https://togithub.com/rectorphp/rector-src/pull/5333))
- Fix array type if property is used in
TypedPropertyFromStrictConstructorRector
([#&#8203;5339](https://togithub.com/rectorphp/rector-src/pull/5339))
- \[Naming] Skip DateTimeImmutable on RenamePropertyToMatchTypeRector
([#&#8203;5340](https://togithub.com/rectorphp/rector-src/pull/5340))
- \[PHP 7.4] Skip typed properties in the set, as standalone set now
available
([#&#8203;5342](https://togithub.com/rectorphp/rector-src/pull/5342))
- \[TypeDeclaration] Skip has child return different type on
ReturnNeverTypeRector
([#&#8203;5343](https://togithub.com/rectorphp/rector-src/pull/5343))
- \[Experiment]\[TypeDeclaration] Allow change abstract class methods
with body on ReturnType\*Rector
([#&#8203;5344](https://togithub.com/rectorphp/rector-src/pull/5344))
- \[Php55] Make StringClassNameToClassConstantRector configurable to
keep first pre-backslash string configurable
([#&#8203;5354](https://togithub.com/rectorphp/rector-src/pull/5354))
- \[TypeDeclaration] Skip casted to (array) on
StrictArrayParamDimFetchRector
([#&#8203;5356](https://togithub.com/rectorphp/rector-src/pull/5356))
- \[TypeDeclaration] Return new static from different object on
ReturnTypeFromStrictTypedCallRector
([#&#8203;5357](https://togithub.com/rectorphp/rector-src/pull/5357))
- \[TypeDeclaration] Allow return static from under function on
ReturnTypeFromStrictTypedCallRector
([#&#8203;5358](https://togithub.com/rectorphp/rector-src/pull/5358))
- \[Naming] Skip `$this` in
RenameForeachValueVariableToMatchExprVariableRector
([#&#8203;5360](https://togithub.com/rectorphp/rector-src/pull/5360)),
Thanks [@&#8203;sreichel](https://togithub.com/sreichel)!
- \[Transform] Do not create a new node if the existing node is already
the correct one on AttributeKeyToClassConstFetchRector
([#&#8203;5328](https://togithub.com/rectorphp/rector-src/pull/5328)),
Thanks [@&#8203;SerethiX](https://togithub.com/SerethiX)!
- Bump to php parser 4.18
([#&#8203;5362](https://togithub.com/rectorphp/rector-src/pull/5362))
- \[CodeQuality] Skip Superglobals variable on
SimplifyEmptyCheckOnEmptyArrayRector
([#&#8203;5369](https://togithub.com/rectorphp/rector-src/pull/5369))
- \[Php55] Handle crash after exit() on GetCalledClassToSelfClassRector
([#&#8203;5372](https://togithub.com/rectorphp/rector-src/pull/5372))
- \[CodeQuality] Skip method call on else on
TernaryFalseExpressionToIfRector
([#&#8203;5373](https://togithub.com/rectorphp/rector-src/pull/5373))
- Remove return type in case of never in RemoveUselessReturnTagRector
([#&#8203;5323](https://togithub.com/rectorphp/rector-src/pull/5323)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DeadCode] Remove unused
[@&#8203;return](https://togithub.com/return) mixed on
RemoveUselessReturnTagRector
([#&#8203;5332](https://togithub.com/rectorphp/rector-src/pull/5332))
- \[DeadCode] Skip has parent class with \__call() magic method on
RemoveParentCallWithoutParentRector
([#&#8203;5336](https://togithub.com/rectorphp/rector-src/pull/5336))
- \[PHP 5.5] Remove extra preslash in class reference, as in practice
removal manually
([#&#8203;5338](https://togithub.com/rectorphp/rector-src/pull/5338))
- \[DeadCode] Remove null as never used param type in
RemoveUselessParamTagRector
([#&#8203;5348](https://togithub.com/rectorphp/rector-src/pull/5348))
- **Remove json throw on error rule from PHP 7.3 set, as changed
behavior and must be applied on purpose**
([#&#8203;5349](https://togithub.com/rectorphp/rector-src/pull/5349))
- \[Testing] Remove unnecessary set Parameter Source on TestingParser
([#&#8203;5371](https://togithub.com/rectorphp/rector-src/pull/5371))

###
[`v0.18.12`](https://togithub.com/rectorphp/rector/releases/tag/0.18.12):
Released Rector 0.18.12

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.11...0.18.12)

#### New Features :partying_face:

- \[CodeQuality] Add RemoveUselessIsObjectCheckRector
([#&#8203;5316](https://togithub.com/rectorphp/rector-src/pull/5316))
- \[PHP83] Implements a rule to add types to class constants
([#&#8203;5290](https://togithub.com/rectorphp/rector-src/pull/5290)),
Thanks [@&#8203;peterfox](https://togithub.com/peterfox)!

<br>

#### Bugfixes :bug:

- \[TypeDeclaration] Skip iterable already there in
AddReturnTypeDeclarationFromYieldsRector
([#&#8203;5291](https://togithub.com/rectorphp/rector-src/pull/5291))
- \[TypeDeclaration] Remove ParamTypeFromStrictTypedPropertyRector as
seems similar feature with AddParamTypeFromPropertyTypeRector
([#&#8203;5293](https://togithub.com/rectorphp/rector-src/pull/5293))
- \[CodingStyle] Remove AddArrayDefaultToArrayPropertyRector as based on
docblock types and public contract, better use type declaration set
instad
([#&#8203;5298](https://togithub.com/rectorphp/rector-src/pull/5298))
- \[TypeDeclaration] Skip return void in abstract empty class in
AddVoidReturnTypeWhereNoReturnRector
([#&#8203;5311](https://togithub.com/rectorphp/rector-src/pull/5311))
- \[Php80] Skip PDO::query() on AddParamBasedOnParentClassMethodRector
([#&#8203;5313](https://togithub.com/rectorphp/rector-src/pull/5313))
- \[TypeDeclaration] Add If else assign support on
TypedPropertyFromAssignsRector
([#&#8203;5314](https://togithub.com/rectorphp/rector-src/pull/5314))
- \[CodeQuality] Make CommonNotEqualRector skip if not <>
([#&#8203;5292](https://togithub.com/rectorphp/rector-src/pull/5292))
- \[Naming] Skip singularize "cms" on
RenameForeachValueVariableToMatchExprVariableRector
([#&#8203;5294](https://togithub.com/rectorphp/rector-src/pull/5294))
- \[TypeDeclaration]\[Performance] Check typed param already early on
ParamTypeByMethodCallTypeRector
([#&#8203;5295](https://togithub.com/rectorphp/rector-src/pull/5295))
- \[Strict] Fix DisallowedEmptyRuleFixerRector empty() allow string '0'
check
([#&#8203;5296](https://togithub.com/rectorphp/rector-src/pull/5296))
- \[EarlyReturn] Skip duplicating complex expression in
ChangeAndIfToEarlyReturnRector
([#&#8203;5301](https://togithub.com/rectorphp/rector-src/pull/5301))
- \[Scoped] Exclude symfony/console/Debug/CliRequest.php from
parallel-lint PHP 7.2 syntax check
([#&#8203;5304](https://togithub.com/rectorphp/rector-src/pull/5304))
- Skip RenameMethodRector in never
([#&#8203;5305](https://togithub.com/rectorphp/rector-src/pull/5305)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[CodeQuality] Skip with else on SimplifyForeachToCoalescingRector
([#&#8203;5307](https://togithub.com/rectorphp/rector-src/pull/5307))
- \[Doc] Typo fix on sample code documentation on
SimplifyForeachToCoalescingRector
([#&#8203;5308](https://togithub.com/rectorphp/rector-src/pull/5308))
- \[Privatization] Skip call non-private method on non-final class on
PrivatizeLocalGetterToPropertyRector
([#&#8203;5309](https://togithub.com/rectorphp/rector-src/pull/5309))
- \[Privatization] Fix first class callable in
PrivatizeLocalGetterToPropertyRector
([#&#8203;5310](https://togithub.com/rectorphp/rector-src/pull/5310))
- \[TypeDeclaration] Keep constant false return type from strict native
call
([#&#8203;5223](https://togithub.com/rectorphp/rector-src/pull/5223)),
Thanks [@&#8203;tomi85](https://togithub.com/tomi85)!
- \[PHP 7.0] Skip mt_rand() replacement as not valuable
([#&#8203;5315](https://togithub.com/rectorphp/rector-src/pull/5315))
- \[Strict] Allow check '0' empty zero on
BooleanInTernaryOperatorRuleFixerRector on string type
([#&#8203;5297](https://togithub.com/rectorphp/rector-src/pull/5297))
- Fix annotation to attribute parsing string
([#&#8203;5317](https://togithub.com/rectorphp/rector-src/pull/5317))
- \[Instanceof] Fix combination of dead instance and compare
([#&#8203;5319](https://togithub.com/rectorphp/rector-src/pull/5319))
- Remove isPositiveInteger() check for third argument to strpos()
([#&#8203;5257](https://togithub.com/rectorphp/rector-src/pull/5257)),
Thanks [@&#8203;ikari7789](https://togithub.com/ikari7789)!
- Remove return type in case of void in RemoveUselessReturnTagRector
([#&#8203;5318](https://togithub.com/rectorphp/rector-src/pull/5318))
- \[DeadCode] Skip [@&#8203;return](https://togithub.com/return) never
with void on RemoveUselessReturnTagRector
([#&#8203;5320](https://togithub.com/rectorphp/rector-src/pull/5320))
- \[DeadCode] Remove useless nullable
[@&#8203;return](https://togithub.com/return) doc on
RemoveUselessReturnTagRector
([#&#8203;5321](https://togithub.com/rectorphp/rector-src/pull/5321))

###
[`v0.18.11`](https://togithub.com/rectorphp/rector/releases/tag/0.18.11):
Released Rector 0.18.11

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.10...0.18.11)

#### Bugfixes :bug:

- \[DeadCode] Skip multi no stmts on RemoveDuplicatedCaseInSwitchRector
([#&#8203;5258](https://togithub.com/rectorphp/rector-src/pull/5258))
- \[Performance]\[Renaming] Remove unnecessary array_reverse() on
RenameClassRector
([#&#8203;5266](https://togithub.com/rectorphp/rector-src/pull/5266))
- \[TypeDeclaration] Skip default not array type on
StrictArrayParamDimFetchRector
([#&#8203;5259](https://togithub.com/rectorphp/rector-src/pull/5259))
- \[TypeDeclaration] Skip echo-ed on StrictArrayParamDimFetchRector
([#&#8203;5260](https://togithub.com/rectorphp/rector-src/pull/5260))
- \[Php71] Skip re-assigned as array on AssignArrayToStringRector
([#&#8203;5261](https://togithub.com/rectorphp/rector-src/pull/5261))
- \[Php71] Ensure re-assign after definition on
AssignArrayToStringRector
([#&#8203;5262](https://togithub.com/rectorphp/rector-src/pull/5262))
- \[Renaming] Handle Rename no namespace to namespaced class with
existing use statements
([#&#8203;5264](https://togithub.com/rectorphp/rector-src/pull/5264))
- \[Renaming]\[Performance] Re-structure check namespace only on renamed
node got Namespace\_
([#&#8203;5265](https://togithub.com/rectorphp/rector-src/pull/5265))
- \[Php81] Skip increment/decrement on ReadOnlyPropertyRector
([#&#8203;5267](https://togithub.com/rectorphp/rector-src/pull/5267))
- \[TypeDeclaration] Deprecate
TypedPropertyFromStrictGetterMethodReturnTypeRector as depends on
missing context and creates invalid code
([#&#8203;5269](https://togithub.com/rectorphp/rector-src/pull/5269))
- \[AutoImport] Fixing auto import on multiple @&#8203;\ usage
([#&#8203;5271](https://togithub.com/rectorphp/rector-src/pull/5271))
- \[Performance]\[Renaming] Use FullyQualified on RenameClassRector
([#&#8203;5272](https://togithub.com/rectorphp/rector-src/pull/5272))
- \[AutoImport] Handle complex usage of multiple @&#8203;\ combined with
other doc
([#&#8203;5273](https://togithub.com/rectorphp/rector-src/pull/5273))
- \[AutoImport] Handle multi @&#8203;\ usage on multiline description
([#&#8203;5274](https://togithub.com/rectorphp/rector-src/pull/5274))
- \[Php80] Handle FQCN @&#8203;\ usage on AnnotationToAttributeRector
([#&#8203;5240](https://togithub.com/rectorphp/rector-src/pull/5240))
- \[BetterPhpDocParser] Handle nested doctrine annotation with single
quote content
([#&#8203;5281](https://togithub.com/rectorphp/rector-src/pull/5281))
- \[Privatization] Skip method with parent call
([#&#8203;5283](https://togithub.com/rectorphp/rector-src/pull/5283))
- \[BetterPhpDocParser] Use ORIG_NODE attribute on
DoctrineAnnotationDecorator on handle @&#8203;\ after generic
([#&#8203;5285](https://togithub.com/rectorphp/rector-src/pull/5285))
- \[Php80] Allow subnamespace from use statements support on
AnnotationToAttributeRector
([#&#8203;5287](https://togithub.com/rectorphp/rector-src/pull/5287))

<br>

#### Removed :skull:

- Remove deprecated Rector rules
([#&#8203;5270](https://togithub.com/rectorphp/rector-src/pull/5270))

###
[`v0.18.10`](https://togithub.com/rectorphp/rector/releases/tag/0.18.10):
Released Rector 0.18.10

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.9...0.18.10)

#### Bugfixes :bug:

- \[Renaming] FQN-ize namespaced import no namespace -> namespaced name
on RenameClassRector
([#&#8203;5256](https://togithub.com/rectorphp/rector-src/pull/5256))

###
[`v0.18.9`](https://togithub.com/rectorphp/rector/releases/tag/0.18.9):
Released Rector 0.18.9

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.8...0.18.9)

#### New Features 🥳

- \[DeadCode]: Support functions in RemoveUnusedVariableAssignRector
([#&#8203;5249](https://togithub.com/rectorphp/rector-src/pull/5249)
- \[Performance]\[PostRector] Only process FullyQualified on import Node
name on NameImportingPostRector
([#&#8203;5255](https://togithub.com/rectorphp/rector-src/pull/5255))

#### Bugfixes :bug:

- \[AutoImport]\[Php70] Keep FQCN on conflict last name on
TernaryToNullCoalescingRector
([#&#8203;5251](https://togithub.com/rectorphp/rector-src/pull/5251))
- \[Naming] Fix dotted name on generics bug in
RenameVariableToMatchMethodCallReturnTypeRector
([#&#8203;5250](https://togithub.com/rectorphp/rector-src/pull/5250))
- \[Php73] Handle crash on JsonThrowOnErrorRector +
SensitiveConstantNameRector
([#&#8203;5253](https://togithub.com/rectorphp/rector-src/pull/5253))
- \[CodingStyle] Refactor UseImportsAdder to return
\[FileWithoutNamespace] code on no namespaced code
([#&#8203;5254](https://togithub.com/rectorphp/rector-src/pull/5254))

###
[`v0.18.8`](https://togithub.com/rectorphp/rector/releases/tag/0.18.8):
Released Rector 0.18.8

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.7...0.18.8)

#### Bugfixes :bug:

- Bump to reactphp/event-loop ^1.5
([#&#8203;5246](https://togithub.com/rectorphp/rector-src/pull/5246))
- \[AutoImport] Skip auto import on no namespace used class on auto
import enabled
([#&#8203;5247](https://togithub.com/rectorphp/rector-src/pull/5247))
- \[AutoImport]\[Renaming] Handle same last name no namespace just
renamed auto import
([#&#8203;5248](https://togithub.com/rectorphp/rector-src/pull/5248))

###
[`v0.18.7`](https://togithub.com/rectorphp/rector/releases/tag/0.18.7):
Released Rector 0.18.7

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.6...0.18.7)

#### New Features :partying_face:

- \[CodeQuality] Add negated support on SingleInArrayToCompareRector
([#&#8203;5205](https://togithub.com/rectorphp/rector-src/pull/5205))
- \[Php83] Adds rule for adding Override attribute
([#&#8203;5170](https://togithub.com/rectorphp/rector-src/pull/5170)),
Thanks [@&#8203;peterfox](https://togithub.com/peterfox)!

<br>

#### Bugfixes :bug:

- BinaryOpBetweenNumberAndStringRector don't trust phpdoc
([#&#8203;5199](https://togithub.com/rectorphp/rector-src/pull/5199)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[CodeQuality]\[Php70] Handle
LocallyCalledStaticMethodToNonStaticRector +
ThisCallOnStaticMethodToStaticCallRector must change both method and
caller
([#&#8203;5196](https://togithub.com/rectorphp/rector-src/pull/5196))
- CountArrayToEmptyArrayComparisonRector: don't trust phpdoc
([#&#8203;5203](https://togithub.com/rectorphp/rector-src/pull/5203)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[TypeDeclaration] Skip union false on
NumericReturnTypeFromStrictScalarReturnsRector
([#&#8203;5204](https://togithub.com/rectorphp/rector-src/pull/5204))
- \[CodeQuality] Handle negated isset on
IssetOnPropertyObjectToPropertyExistsRector on property not exists
([#&#8203;5206](https://togithub.com/rectorphp/rector-src/pull/5206))
- \[CodeQuality] Handle crash no scope on
ThrowWithPreviousExceptionRector+OptionalParametersAfterRequiredRector
([#&#8203;5207](https://togithub.com/rectorphp/rector-src/pull/5207))
- \[NodeTypeResolver] Clean up TryCatch\_ Scope filling
([#&#8203;5208](https://togithub.com/rectorphp/rector-src/pull/5208))
- \[PHPStanStaticTypeMapper] Clean up tweak false and bool check on
UnionTypeMapper
([#&#8203;5209](https://togithub.com/rectorphp/rector-src/pull/5209))
- \[TypeDeclaration] Skip default numeric string on param int on
ParamTypeByMethodCallTypeRector
([#&#8203;5210](https://togithub.com/rectorphp/rector-src/pull/5210))
- \[AutoImport] Handle AnnotationToAttributeRector + RenameClassRector
then enable auto import
([#&#8203;5213](https://togithub.com/rectorphp/rector-src/pull/5213))
- \[Php80] Keep single quoted Argument Attribute on
AnnotationToAttributeRector
([#&#8203;5214](https://togithub.com/rectorphp/rector-src/pull/5214))
- \[Php80] Keep single quoted key: 'value' on
AnnotationToAttributeRector
([#&#8203;5215](https://togithub.com/rectorphp/rector-src/pull/5215))
- \[AutoImport] Ensure change to FullyQualified for Attribute on just
changed from annotation
([#&#8203;5216](https://togithub.com/rectorphp/rector-src/pull/5216))
- \[Php52]\[Php70] Handle ContinueToBreakInSwitchRector +
BreakNotInLoopOrSwitchToReturnRector
([#&#8203;5217](https://togithub.com/rectorphp/rector-src/pull/5217))
- \[Php80] Handle RenameClassRector+AnnotationToAttributeRector with
auto import and existing attribute defined
([#&#8203;5219](https://togithub.com/rectorphp/rector-src/pull/5219))
- \[Testing] In case of failed test using multiple rules, show applied
Rector rules to make easy to find them
([#&#8203;5222](https://togithub.com/rectorphp/rector-src/pull/5222))
- \[NodeTypeResolver] Handle nullable extended class on ->isObjectType()
on DowngradeReflectionGetAttributesRector
([#&#8203;5224](https://togithub.com/rectorphp/rector-src/pull/5224))
- NullableCompareToNullRector: Don't trust phpdocs
([#&#8203;5225](https://togithub.com/rectorphp/rector-src/pull/5225)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[CodingStyle] Move ArraySpreadInsteadOfArrayMergeRector from php74 to
codingstyle sets list
([#&#8203;5230](https://togithub.com/rectorphp/rector-src/pull/5230))
- \[PostRector] Ensure old classes in use statements cleaned up after
rename attribuet on ClassRenamingPostRector
([#&#8203;5231](https://togithub.com/rectorphp/rector-src/pull/5231))
- RestoreDefaultNullToNullableTypePropertyRector: skip `@readonly`
phpdoc
([#&#8203;5233](https://togithub.com/rectorphp/rector-src/pull/5233)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[AutoImport] Handle DeclareStrictTypesRector on importNames() enabled
on no namespace
([#&#8203;5241](https://togithub.com/rectorphp/rector-src/pull/5241))
- \[AutoImport] Allow auto import just renamed
[@&#8203;var](https://togithub.com/var) only docblock on
RenameClassRector without removeUnusedImports() enabled
([#&#8203;5220](https://togithub.com/rectorphp/rector-src/pull/5220))
- Remove rule DataProviderArrayItemsNewlinedRector.php
([#&#8203;5227](https://togithub.com/rectorphp/rector-src/pull/5227)),
Thanks [@&#8203;eerison](https://togithub.com/eerison)!
- Remove `ArraySpreadInsteadOfArrayMergeRector` from
`LevelSetList::UP_TO_PHP_74`
([#&#8203;5228](https://togithub.com/rectorphp/rector-src/pull/5228)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DeadCode] Allow indirect duplicated grouping on
RemoveDuplicatedCaseInSwitchRector
([#&#8203;5234](https://togithub.com/rectorphp/rector-src/pull/5234))
- \[DeadCode] Reduce double loop on RemoveDuplicatedCaseInSwitchRector
([#&#8203;5235](https://togithub.com/rectorphp/rector-src/pull/5235))
- \[DeadCode] Handle different indirect duplicated on
RemoveDuplicatedCaseInSwitchRector
([#&#8203;5236](https://togithub.com/rectorphp/rector-src/pull/5236))
- \[DeadCode] Ensure change hasChanged flag on
RemoveDuplicatedCaseInSwitchRector
([#&#8203;5237](https://togithub.com/rectorphp/rector-src/pull/5237))
- \[DeadCode] Handle repetitive jump equal case stmts on
RemoveDuplicatedCaseInSwitchRector
([#&#8203;5239](https://togithub.com/rectorphp/rector-src/pull/5239))
- Rename parameter variable to nextCase on
RemoveDuplicatedCaseInSwitchRector
([#&#8203;5244](https://togithub.com/rectorphp/rector-src/pull/5244))

###
[`v0.18.6`](https://togithub.com/rectorphp/rector/releases/tag/0.18.6):
Released Rector 0.18.6

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.5...0.18.6)

##### New Features and Changes :partying_face:

- \[CodeQuality] Add CompleteMissingIfElseBracketRector
([#&#8203;5121](https://togithub.com/rectorphp/rector-src/pull/5121))
- \[CodeQuality] Add Else and ElseIf on
CompleteMissingIfElseBracketRector
([#&#8203;5124](https://togithub.com/rectorphp/rector-src/pull/5124))
- \[TypeDeclaration] Utilize ClassMethodReturnTypeOverrideGuard on
AddReturnTypeDeclarationFromYieldsRector
([#&#8203;5156](https://togithub.com/rectorphp/rector-src/pull/5156))
- \[DeadCode] Add RemoveUselessReturnExprInConstructRector
([#&#8203;5158](https://togithub.com/rectorphp/rector-src/pull/5158))
- Improve UnaryPlus and UnaryMinus support in isDynamicExpr
([#&#8203;5177](https://togithub.com/rectorphp/rector-src/pull/5177)),
Thanks [@&#8203;JulianCBC](https://togithub.com/JulianCBC)!

<br>

##### Bugfixes :bug:

- \[CodeQuality] Skip VB style if endif on
CompleteMissingIfElseBracketRector
([#&#8203;5122](https://togithub.com/rectorphp/rector-src/pull/5122))
- \[CodeQuality] Skip direct InlineHTML on
CompleteMissingIfElseBracketRector
([#&#8203;5125](https://togithub.com/rectorphp/rector-src/pull/5125))
- \[CodeQuality] Skip spaced elseif cond on
CompleteMissingIfElseBracketRector
([#&#8203;5126](https://togithub.com/rectorphp/rector-src/pull/5126))
- \[CodeQuality] Only check start from current Stmt token pos up until
open parentheses on CompleteMissingIfElseBracketRector
([#&#8203;5127](https://togithub.com/rectorphp/rector-src/pull/5127))
- \[CodeQuality] Handle all if,elseif,else no bracket on
CompleteMissingIfElseBracketRector
([#&#8203;5129](https://togithub.com/rectorphp/rector-src/pull/5129))
- \[CodeQuality] Skip VB style in complex HTML on
CompleteMissingIfElseBracketRector
([#&#8203;5132](https://togithub.com/rectorphp/rector-src/pull/5132))
- Skip `__construct()` in BoolReturnTypeFromStrictScalarReturnsRector
([#&#8203;5133](https://togithub.com/rectorphp/rector-src/pull/5133)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[CodeQuality] Handle missing bracket on If only on
CompleteMissingIfElseBracketRector
([#&#8203;5134](https://togithub.com/rectorphp/rector-src/pull/5134))
- \[CodeQuality] Handle on closure, anonymous function, method call on
CompleteMissingIfElseBracketRector
([#&#8203;5135](https://togithub.com/rectorphp/rector-src/pull/5135))
- \[CodeQuality] Use its start token pos on Else\_ on
CompleteMissingIfElseBracketRector as no cond
([#&#8203;5136](https://togithub.com/rectorphp/rector-src/pull/5136))
- \[PhpParser] Reduce AstResolver complexity by move check fileName is
null to parseFileNameToDecoratedNodes()
([#&#8203;5138](https://togithub.com/rectorphp/rector-src/pull/5138))
- \[TypeDeclaration] Handle Union with array type on
ReturnUnionTypeRector
([#&#8203;5144](https://togithub.com/rectorphp/rector-src/pull/5144))
- \[TypeDeclaration] Handle union A extends B on ReturnUnionTypeRector
([#&#8203;5149](https://togithub.com/rectorphp/rector-src/pull/5149))
- \[CodeQuality] Fix missing parentheses on CombineIfRector
([#&#8203;5151](https://togithub.com/rectorphp/rector-src/pull/5151))
- \[TypeDeclaration] Utilize ClassMethodReturnTypeOverrideGuard on
NumericReturnTypeFromStrictScalarReturnsRector
([#&#8203;5155](https://togithub.com/rectorphp/rector-src/pull/5155))
- \[CodeQuality] Handle negative and positive int/float on
InlineConstructorDefaultToPropertyRector
([#&#8203;5159](https://togithub.com/rectorphp/rector-src/pull/5159))
- \[CodeQuality] Skip docblock usage on SimplifyBoolIdenticalTrueRector
([#&#8203;5161](https://togithub.com/rectorphp/rector-src/pull/5161))
- \[CodeQuality] Skip magic property fetch on
IssetOnPropertyObjectToPropertyExistsRector
([#&#8203;5163](https://togithub.com/rectorphp/rector-src/pull/5163))
- \[PostRector] Reduce loop on ClassRenamingPostRector
([#&#8203;5174](https://togithub.com/rectorphp/rector-src/pull/5174))
- \[PostRector] Fix ClassRenamingPostRector return when no auto import
replacement
([#&#8203;5175](https://togithub.com/rectorphp/rector-src/pull/5175))
- \[Renaming] Skip nullable object object|null on RenameMethodRector
([#&#8203;5181](https://togithub.com/rectorphp/rector-src/pull/5181))
- \[Downgradephp81]\[DowngradePhp80] Handle No scope crash on
DowngradeSetAccessibleReflectionPropertyRector +
DowngradeMatchToSwitchRector
([#&#8203;5183](https://togithub.com/rectorphp/rector-src/pull/5183))
- \[Naming] Skip DateTime from renaming, to keep convention of named
dates
([#&#8203;5184](https://togithub.com/rectorphp/rector-src/pull/5184))
- Skip new self in RenameVariableToMatchNewTypeRector
([#&#8203;5185](https://togithub.com/rectorphp/rector-src/pull/5185))
- Skip DateTime in ExpectedNameResolver
([#&#8203;5186](https://togithub.com/rectorphp/rector-src/pull/5186))
- \[Naming] Skip all kinds of generators
([#&#8203;5187](https://togithub.com/rectorphp/rector-src/pull/5187))
- \[Renaming] Skip pointless names in
RenameForeachValueVariableToMatchMethodCallReturnTypeRector
([#&#8203;5188](https://togithub.com/rectorphp/rector-src/pull/5188))
- \[Php70] Fix Php4 contructor not replaced with \__construct() on php
7.4 environment
([#&#8203;5189](https://togithub.com/rectorphp/rector-src/pull/5189))
- \[Php74]\[Php81] Allow mixed key on
ArraySpreadInsteadOfArrayMergeRector on php 8.1 version feature enabled
([#&#8203;5190](https://togithub.com/rectorphp/rector-src/pull/5190))
- \[TypeDeclaration] Handle skipped by file path on
DeclareStrictTypesRector due to use beforeTraverse()
([#&#8203;5191](https://togithub.com/rectorphp/rector-src/pull/5191))
- Fix phpstan notice $phpVersion on
Rector\Config\RectorConfig::phpVersion()
([#&#8203;5193](https://togithub.com/rectorphp/rector-src/pull/5193))
- \[PHPStanStaticTypeMapper] Remove BoolUnionTypeAnalyzer on
UnionTypeMapper
([#&#8203;5141](https://togithub.com/rectorphp/rector-src/pull/5141))
- \[DeadCode] Remove UnionType check on RecastingRemovalRector
([#&#8203;5142](https://togithub.com/rectorphp/rector-src/pull/5142))
- Remove src/constants.php for T_ENUM and T_NAME_RELATIVE
([#&#8203;5143](https://togithub.com/rectorphp/rector-src/pull/5143))
- \[PHPStanStaticTypeMapper] Remove narrow string and int on
UnionTypeMapper
([#&#8203;5145](https://togithub.com/rectorphp/rector-src/pull/5145))
- \[PHPStanStaticTypeMapper] Remove matchArrayTypes() on UnionTypeMapper
([#&#8203;5146](https://togithub.com/rectorphp/rector-src/pull/5146))
- \[DeadCode] Skip indirect variable definition on
RemoveNonExistingVarAnnotationRector
([#&#8203;5152](https://togithub.com/rectorphp/rector-src/pull/5152))
- \[DeadCode] Skip key used in next stmt on RemoveUnusedForeachKeyRector
([#&#8203;5153](https://togithub.com/rectorphp/rector-src/pull/5153))
- \[DeadCode] Skip used in next For\_/Foreach\_ on
RemoveDeadIfForeachForRector
([#&#8203;5154](https://togithub.com/rectorphp/rector-src/pull/5154))
- \[DeadCode] Handle file_get_contents() only remove variable on
RemoveUnusedVariableAssignRector
([#&#8203;5162](https://togithub.com/rectorphp/rector-src/pull/5162))
- \[DeadCode] Skip count() on mixed on
RemoveUnusedNonEmptyArrayBeforeForeachRector
([#&#8203;5160](https://togithub.com/rectorphp/rector-src/pull/5160))
- RemoveUnusedNonEmptyArrayBeforeForeachRector: ignore phpdoc types
([#&#8203;5169](https://togithub.com/rectorphp/rector-src/pull/5169)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- RemoveUnusedNonEmptyArrayBeforeForeachRector: skip array dim fetch
([#&#8203;5166](https://togithub.com/rectorphp/rector-src/pull/5166)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DeadCode] Skip return false pseudo type in union on
RemoveUselessReturnTagRector
([#&#8203;5172](https://togithub.com/rectorphp/rector-src/pull/5172))
- \[AutoImport] \[Renaming] Skip remove used use statement on annotation
during rename + auto import when no replacement on auto import
([#&#8203;5168](https://togithub.com/rectorphp/rector-src/pull/5168))
- \[DeadCode] Mirror comment on assign method call on
RemoveUnusedVariableAssignRector
([#&#8203;5195](https://togithub.com/rectorphp/rector-src/pull/5195))

###
[`v0.18.5`](https://togithub.com/rectorphp/rector/releases/tag/0.18.5):
Released Rector 0.18.5

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.4...0.18.5)

#### New Features and Improvements :partying_face:

- \[build] Remove duplicated phpstan/phpstan from the build, as require
by build package in composer.json already
(https://github.com/rectorphp/rector-src/commit/51ed7b693fbfab70cf6a246bec4cc35f0ceacf7a)
- AddParamTypeBasedOnPHPUnitDataProviderRector: Check all data providers
([#&#8203;5068](https://togithub.com/rectorphp/rector-src/pull/5068)),
Thanks [@&#8203;jlherren](https://togithub.com/jlherren)!
- AddParamTypeBasedOnPHPUnitDataProviderRector: Enhance existing rule to
handle PHPUnit 10+ DataProvider Attribute
([#&#8203;4925](https://togithub.com/rectorphp/rector-src/pull/4925)),
Thanks [@&#8203;mcampbell508](https://togithub.com/mcampbell508)!
- make PhpDocInfo::findByAnnotationClass() public to use in Symfony
rules
([#&#8203;5103](https://togithub.com/rectorphp/rector-src/pull/5103))

<br>

#### Bugfixes :bug:

- Feature/fix class annotation bad print
([#&#8203;5081](https://togithub.com/rectorphp/rector-src/pull/5081)),
Thanks [@&#8203;etshy](https://togithub.com/etshy)!
- \[Performance] Avoid ReflectionProvider check function exists on
NameImportingPostRector
([#&#8203;5083](https://togithub.com/rectorphp/rector-src/pull/5083))
- InlineConstructorDefaultToPropertyRector Readonly Class
([#&#8203;5085](https://togithub.com/rectorphp/rector-src/pull/5085)),
Thanks [@&#8203;beschoenen](https://togithub.com/beschoenen)!
- \[CodeQuality] Handle crash on variable variable on assign closure on
OptionalParametersAfterRequiredRector
([#&#8203;5089](https://togithub.com/rectorphp/rector-src/pull/5089))
- \[NodeTypeResolver] Use isScalar()->yes() usage on StaticTypeAnalyzer
and ScalarTypeComparator services
([#&#8203;5099](https://togithub.com/rectorphp/rector-src/pull/5099))
- \[ProcessAnalyzer] Ensure instanceof Stmt on check infinite loop on
not yet has "created_by_rule" attribute
([#&#8203;5100](https://togithub.com/rectorphp/rector-src/pull/5100))
- \[DX] Rename shouldImportName() to shouldSkipName() on
ClassNameImportSkipper
([#&#8203;5107](https://togithub.com/rectorphp/rector-src/pull/5107))
- The ReturnTypeFromReturnNewRector must only handle new instances, to
avoid leaking to everything
([#&#8203;5115](https://togithub.com/rectorphp/rector-src/pull/5115))
- \[Php80] Skip when already implements Stringable and has string return
type on StringableForToStringRector
([#&#8203;5120](https://togithub.com/rectorphp/rector-src/pull/5120))

<br>

#### Removed and Deprecated :skull:

- \[DX] Remove CurrentFileProvider dependency on
ChangedNodeScopeRefresher
([#&#8203;5087](https://togithub.com/rectorphp/rector-src/pull/5087))
- \[DX] Remove DependencyClassMethodDecorator as not used anymore due to
paralel nature
([#&#8203;5094](https://togithub.com/rectorphp/rector-src/pull/5094))
- \[PostRector] Remove CurrentFileProvider on PostFileProcessor
([#&#8203;5097](https://togithub.com/rectorphp/rector-src/pull/5097))
- \[Comments] Remove unused copy Node object on CommentRemover
([#&#8203;5103](https://togithub.com/rectorphp/rector-src/pull/5103))
- \[Performance]\[AutoImport] Remove just renamed check on
ClassNameImportSkipper
([#&#8203;5106](https://togithub.com/rectorphp/rector-src/pull/5106))
- Deprecate CountOnNullRector as depends on previous context and require
manual adjustment of previous result
([#&#8203;5101](https://togithub.com/rectorphp/rector-src/pull/5101))

###
[`v0.18.4`](https://togithub.com/rectorphp/rector/releases/tag/0.18.4):
Released Rector 0.18.4

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.3...0.18.4)

#### New Features and Improvements :partying_face:

- **Introducing Collectors** :partying_face: - processing collected data
+ test case
([#&#8203;4970](https://togithub.com/rectorphp/rector-src/pull/4970))
- Run tests on macos
([#&#8203;5019](https://togithub.com/rectorphp/rector-src/pull/5019)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Move betterNodeFinder, valueResolver, phpDocInfoFactory dependencies
from AbstractRector into rules
([#&#8203;5071](https://togithub.com/rectorphp/rector-src/pull/5071))
- DX: Validate paths in RectorConfig->paths()
([#&#8203;5065](https://togithub.com/rectorphp/rector-src/pull/5065)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DX] Make PhpDocInfoFactory explicitly required in Rector rule
constructor, if needed
([#&#8203;5051](https://togithub.com/rectorphp/rector-src/pull/5051))
- \[DX] Make ValueResolver explicitly required in Rector rules
constructor if needed
([#&#8203;5052](https://togithub.com/rectorphp/rector-src/pull/5052))

<br>

#### Bugfixes :bug:

- \[DeadCode] RemoveDeadZeroAndOneOperationRector should not remove
Constants
([#&#8203;4910](https://togithub.com/rectorphp/rector-src/pull/4910)),
Thanks [@&#8203;TwanVermeulen](https://togithub.com/TwanVermeulen)!
- \[PostRector] Fix unused import not removed on empty generic class
name exists
([#&#8203;5012](https://togithub.com/rectorphp/rector-src/pull/5012))
- \[Parallel] Handle Spaced root project main script on parallel process
([#&#8203;4813](https://togithub.com/rectorphp/rector-src/pull/4813))
- Fix TypedPropertyFromStrictConstructor\* order
([#&#8203;5021](https://togithub.com/rectorphp/rector-src/pull/5021)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DX] Lower current node dependency - pass it directly to doc node
parsing
([#&#8203;5023](https://togithub.com/rectorphp/rector-src/pull/5023))
- \[AutoImport] Fix conflict current namespace auto import
([#&#8203;5024](https://togithub.com/rectorphp/rector-src/pull/5024))
- Simplify UseIdenticalOverEqualWithSameTypeRector
([#&#8203;5029](https://togithub.com/rectorphp/rector-src/pull/5029)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[Performance]\[Testing] Use str_contains instead of regex in
FixtureSplitter
([#&#8203;5030](https://togithub.com/rectorphp/rector-src/pull/5030))
- Fix ArrayKeyFirstLastRector: Skip exection when pointer is changed
([#&#8203;5038](https://togithub.com/rectorphp/rector-src/pull/5038)),
Thanks [@&#8203;scyzoryck](https://togithub.com/scyzoryck)!
- \[TypeDeclaration] Handle fallback from param same type object on
ReturnTypeFromReturnNewRector
([#&#8203;5039](https://togithub.com/rectorphp/rector-src/pull/5039))
- \[NodeTypeResolver] Use Scope->getType() on ArrayDimFetch on
NodeTypeResolver::getNativeType()
([#&#8203;5037](https://togithub.com/rectorphp/rector-src/pull/5037))
- \[NodeTypeResolver] pull getType() on ArrayDimFetch when not mixed
type from its variable native definition
([#&#8203;5056](https://togithub.com/rectorphp/rector-src/pull/5056))
- \[CodingStyle]\[EarlyReturn] Fix infinite if else on
BinarySwitchToIfElseRector+RemoveAlwaysElseRector
([#&#8203;5057](https://togithub.com/rectorphp/rector-src/pull/5057))
- \[TypeDeclaration] Skip ArrayDimFetch for return and param types
([#&#8203;5059](https://togithub.com/rectorphp/rector-src/pull/5059)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[NodeTypeResolver] Handle optional array shape on native function
like with ArrayDimFetch
([#&#8203;5062](https://togithub.com/rectorphp/rector-src/pull/5062))
- \[Php80] Mirror switch comment to match to ChangeSwitchToMatchRector
([#&#8203;5072](https://togithub.com/rectorphp/rector-src/pull/5072))
- \[AutoImport] Skip case insensitive conflict defined class name on
$rectorConfig->importNames()
([#&#8203;5076](https://togithub.com/rectorphp/rector-src/pull/5076))
- Docblock fix on ShortNameResolver
([#&#8203;5077](https://togithub.com/rectorphp/rector-src/pull/5077))
- \[TypeDeclaration] Add return static property support on
ReturnTypeFromStrictTypedPropertyRector
([#&#8203;5050](https://togithub.com/rectorphp/rector-src/pull/5050))

<br>

#### Removed and Deprecated :skull:

- \[Config] Remove asterisk support in import() for file, use explicit
paths instead
([#&#8203;5010](https://togithub.com/rectorphp/rector-src/pull/5010))
- \[Performance] Remove regex check on open tag spaced check on
FileProcessor
([#&#8203;5073](https://togithub.com/rectorphp/rector-src/pull/5073))
- Deprecate TypedPropertyFromStrictConstructorReadonlyClassRector as
based on docblock and public elements; use private elements and property
promotion instead
([#&#8203;5049](https://togithub.com/rectorphp/rector-src/pull/5049))
- Deprecate BinarySwitchToIfElseRector as opinionated to allow more
suitable match() refactoring
([#&#8203;5064](https://togithub.com/rectorphp/rector-src/pull/5064))

###
[`v0.18.3`](https://togithub.com/rectorphp/rector/releases/tag/0.18.3):
Released Rector 0.18.3

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.2...0.18.3)

#### New Features and Changes :partying_face:

- **\[BC] docblock changes in custom Rector rules now have to be
reprinted directly in the rule
-[https://github.com/rectorphp/rector/issues/8201#issue-1894148095](https://togithub.com/rectorphp/rector/issues/8201#issue-1894148095)5**
- \[TypeDeclaration] Add return empty string defined support on
ReturnTypeFromStrictScalarReturnExprRector
([#&#8203;4919](https://togithub.com/rectorphp/rector-src/pull/4919))
- \[TypeDeclaration] Add fallback return direct array support on
ReturnTypeFromStrictNewArrayRector
([#&#8203;4928](https://togithub.com/rectorphp/rector-src/pull/4928))
- \[TypeDeclaration] Add init assign method call support on
ReturnTypeFromStrictNewArrayRector
([#&#8203;4929](https://togithub.com/rectorphp/rector-src/pull/4929))
- \[TypeDeclaration] Ensure ArrayType on
ReturnTypeFromStrictNewArrayRector::shouldAddReturnArrayDocType()
([#&#8203;4932](https://togithub.com/rectorphp/rector-src/pull/4932))
- \[TypeDeclaration] Add test fixture return docblock on init method
call assign as skipped on ReturnTypeFromStrictNewArrayRector
([#&#8203;4933](https://togithub.com/rectorphp/rector-src/pull/4933))
- \[TypeDeclaration] Add non native function return support on
ReturnTypeFromStrictScalarReturnExprRector
([#&#8203;4934](https://togithub.com/rectorphp/rector-src/pull/4934))
- **BC: Separated regex matching in NodeNameResolver->isName()
([#&#8203;4951](https://togithub.com/rectorphp/rector-src/pull/4951)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!**
- Add support for Custom Skip Voters
([#&#8203;5002](https://togithub.com/rectorphp/rector-src/pull/5002)),
Thanks [@&#8203;kaczenski](https://togithub.com/kaczenski)!
- Implement a max jobs per worker budget
([#&#8203;4965](https://togithub.com/rectorphp/rector-src/pull/4965)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Prevent unnecessary calls to spl_object_id()
([#&#8203;4992](https://togithub.com/rectorphp/rector-src/pull/4992)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Refactor use import resolving
([#&#8203;4998](https://togithub.com/rectorphp/rector-src/pull/4998)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- NodeNameResolver: Throw exception in BC breaking path
([#&#8203;4980](https://togithub.com/rectorphp/rector-src/pull/4980)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[Internals] Decouple output from AbstractRector, narrow debugging
output to file path
([#&#8203;4976](https://togithub.com/rectorphp/rector-src/pull/4976))
- Update docblock only when changed, directly in rector rule
([#&#8203;4986](https://togithub.com/rectorphp/rector-src/pull/4986))

<br>

#### Bugfixes :bug:

- AddVoidReturnTypeWhereNoReturnRector: fix never type handling
([#&#8203;4918](https://togithub.com/rectorphp/rector-src/pull/4918)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[TypeDeclaration] Skip return after return closure on
AddVoidReturnTypeWhereNoReturnRector
([#&#8203;4930](https://togithub.com/rectorphp/rector-src/pull/4930))
- \[TypeDeclaration] Use $type->isScalar()->yes() on
AlwaysStrictScalarExprAnalyzer
([#&#8203;4920](https://togithub.com/rectorphp/rector-src/pull/4920))
- Refactor BetterNodeFinder::findFirstInFunctionLikeScoped() to work
with SilentVoidResolver
([#&#8203;4931](https://togithub.com/rectorphp/rector-src/pull/4931))
- \[NodeTypeResolver] Handle isObjectType() on new $class dynamic
variable should return false compare to Object FQCN
([#&#8203;4936](https://togithub.com/rectorphp/rector-src/pull/4936))
- \[Testing] Fix running unit test on macOS
([#&#8203;4941](https://togithub.com/rectorphp/rector-src/pull/4941))
- Faster name resolving
([#&#8203;4955](https://togithub.com/rectorphp/rector-src/pull/4955)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- UseImportsTraverser: don't deep traverse
([#&#8203;4994](https://togithub.com/rectorphp/rector-src/pull/4994)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[tests] Replace wildcard e2e test with unit one
([#&#8203;5000](https://togithub.com/rectorphp/rector-src/pull/5000))
- \[DocBlock] Update docblock contents right in the rule
([#&#8203;4999](https://togithub.com/rectorphp/rector-src/pull/4999))
- \[PhpParser] Fix crash read jetbrains/phpstorm-stubs included in
phpstan.phar on PHP 8.0 and PHP 7.4
([#&#8203;5001](https://togithub.com/rectorphp/rec

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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/Lendable/clock).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
oguzhand95 pushed a commit to cerbos/cerbos-sdk-php that referenced this issue Jan 15, 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 |
|---|---|---|---|---|---|
| [google/protobuf](https://developers.google.com/protocol-buffers/)
([source](https://togithub.com/protocolbuffers/protobuf-php)) | `3.25.1`
-> `3.25.2` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/google%2fprotobuf/3.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/google%2fprotobuf/3.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/google%2fprotobuf/3.25.1/3.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/google%2fprotobuf/3.25.1/3.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpstan/phpstan](https://togithub.com/phpstan/phpstan) | `1.10.54` ->
`1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.54/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpunit/phpunit](https://phpunit.de/)
([source](https://togithub.com/sebastianbergmann/phpunit)) | `10.5.5` ->
`10.5.7` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpunit%2fphpunit/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpunit%2fphpunit/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpunit%2fphpunit/10.5.5/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpunit%2fphpunit/10.5.5/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vimeo/psalm](https://togithub.com/vimeo/psalm) | `5.18.0` -> `5.19.0`
|
[![age](https://developer.mend.io/api/mc/badges/age/packagist/vimeo%2fpsalm/5.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/vimeo%2fpsalm/5.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/vimeo%2fpsalm/5.18.0/5.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/vimeo%2fpsalm/5.18.0/5.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-php (google/protobuf)</summary>

###
[`v3.25.2`](https://togithub.com/protocolbuffers/protobuf-php/compare/v3.25.1...v3.25.2)

[Compare
Source](https://togithub.com/protocolbuffers/protobuf-php/compare/v3.25.1...v3.25.2)

</details>

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(phpstan/phpstan-src@8b6260c),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(phpstan/phpstan-src@bbd9a68),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(phpstan/phpstan-src@9dac90d),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(phpstan/phpstan-src@2270051),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(phpstan/phpstan-src@9be1376),
[phpstan/phpstan-deprecation-rules#106

</details>

<details>
<summary>sebastianbergmann/phpunit (phpunit/phpunit)</summary>

###
[`v10.5.7`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.6...10.5.7)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.6...10.5.7)

###
[`v10.5.6`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.5...10.5.6)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.5...10.5.6)

</details>

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

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

##### Fixes

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

#### New Contributors

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

**Full Changelog**:
vimeo/psalm@5.18.0...5.19.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

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>
github-merge-queue bot pushed a commit to Lendable/json-serializer that referenced this issue Jan 15, 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 |
|---|---|---|---|---|---|
| [php-cs-fixer/shim](https://togithub.com/PHP-CS-Fixer/shim) |
`^3.41.1` -> `^3.46.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/php-cs-fixer%2fshim/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/php-cs-fixer%2fshim/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/php-cs-fixer%2fshim/3.41.1/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/php-cs-fixer%2fshim/3.41.1/3.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpstan/phpstan](https://togithub.com/phpstan/phpstan) | `^1.10.50`
-> `^1.10.55` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpstan%2fphpstan/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpstan%2fphpstan/1.10.50/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpstan%2fphpstan/1.10.50/1.10.55?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [phpunit/phpunit](https://phpunit.de/)
([source](https://togithub.com/sebastianbergmann/phpunit)) | `^10.5.3`
-> `^10.5.7` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/phpunit%2fphpunit/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/phpunit%2fphpunit/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/phpunit%2fphpunit/10.5.3/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/phpunit%2fphpunit/10.5.3/10.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rector/rector](https://getrector.org)
([source](https://togithub.com/rectorphp/rector)) | `^0.18.12` ->
`^0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/rector%2frector/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/rector%2frector/0.18.12/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/rector%2frector/0.18.12/0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>PHP-CS-Fixer/shim (php-cs-fixer/shim)</summary>

###
[`v3.46.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.45.0...v3.46.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.45.0...v3.46.0)

###
[`v3.45.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.44.0...v3.45.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.44.0...v3.45.0)

###
[`v3.44.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.1...v3.44.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.1...v3.44.0)

###
[`v3.43.1`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.0...v3.43.1)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.43.0...v3.43.1)

###
[`v3.43.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.42.0...v3.43.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.42.0...v3.43.0)

###
[`v3.42.0`](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.41.1...v3.42.0)

[Compare
Source](https://togithub.com/PHP-CS-Fixer/shim/compare/v3.41.1...v3.42.0)

</details>

<details>
<summary>phpstan/phpstan (phpstan/phpstan)</summary>

###
[`v1.10.55`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.55)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.54...1.10.55)

# Improvements 🔧

- PHPDoc tag `@phpstan-ignore-next-line` works for first line below the
PHPDoc even in bleeding edge
(phpstan/phpstan-src@8b6260c),
[#&#8203;10383](https://togithub.com/phpstan/phpstan/issues/10383),
[https://github.com/phpstan/phpstan/discussions/10374](https://togithub.com/phpstan/phpstan/discussions/10374)
- Add `open-resource` type
(phpstan/phpstan-src@bbd9a68),
[#&#8203;10399](https://togithub.com/phpstan/phpstan/issues/10399)
- Optimize repeated container creation in tests
([#&#8203;2860](https://togithub.com/phpstan/phpstan-src/pull/2860)),
thanks [@&#8203;schlndh](https://togithub.com/schlndh)!
- Try to prevent error with PHP-Parser 5 when running PHPUnit tests
(phpstan/phpstan-src@9dac90d),
[#&#8203;10401](https://togithub.com/phpstan/phpstan/issues/10401),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix mixing property and param attributes on promoted property
([#&#8203;2825](https://togithub.com/phpstan/phpstan-src/pull/2825)),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- Fix detection of shadowed trait methods
(phpstan/phpstan-src@2270051),
[#&#8203;10377](https://togithub.com/phpstan/phpstan/issues/10377)
- Fix int-range return type for range()
([#&#8203;2792](https://togithub.com/phpstan/phpstan-src/pull/2792)),
[#&#8203;10213](https://togithub.com/phpstan/phpstan/issues/10213),
[#&#8203;9573](https://togithub.com/phpstan/phpstan/issues/9573), thanks
[@&#8203;dantleech](https://togithub.com/dantleech)!

# Internals 🔍

- Remove unused DirectClassReflectionExtensionRegistryProvider
([#&#8203;2857](https://togithub.com/phpstan/phpstan-src/pull/2857)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Plumbing for `@phpstan-require-extends` and
`@phpstan-require-implements`
([#&#8203;2856](https://togithub.com/phpstan/phpstan-src/pull/2856)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- `Scope::getFunctionCallStack()`
(phpstan/phpstan-src@9be1376),
[phpstan/phpstan-deprecation-rules#106

###
[`v1.10.54`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.54)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.53...1.10.54)

# Bleeding edge 🔪

- Revert "ParamAttributesRule - promoted property attribute needs to
target both parameters and properties"
(phpstan/phpstan-src@02f66df),
[#&#8203;10385](https://togithub.com/phpstan/phpstan/issues/10385)
- See PHP internals discussion:
https://externals.io/message/111942#112021

*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 🔧

- UsedNamesRule - level 0
([#&#8203;2849](https://togithub.com/phpstan/phpstan-src/pull/2849)),
thanks [@&#8203;lulco](https://togithub.com/lulco)!

# Bugfixes 🐛

- Simplify TooWideClosureReturnTypehintRule
(phpstan/phpstan-src@a81df66)
- Fix falsy isset for all expressions
(phpstan/phpstan-src@af14d50),
[#&#8203;10373](https://togithub.com/phpstan/phpstan/issues/10373)

###
[`v1.10.53`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.53)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.52...1.10.53)

# Improvements 🔧

- Impl `str_increment` / `str_decrement` return type extension
([#&#8203;2776](https://togithub.com/phpstan/phpstan-src/pull/2776)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!

# Bugfixes 🐛

- Fix loading polyfills twice
(phpstan/phpstan@3e7c7c7?w=1),
[#&#8203;10387](https://togithub.com/phpstan/phpstan/issues/10387)
- `array_udiff()` comparator return type is too strict
([#&#8203;2822](https://togithub.com/phpstan/phpstan-src/pull/2822)),
[#&#8203;9697](https://togithub.com/phpstan/phpstan/issues/9697), thanks
[@&#8203;staabm](https://togithub.com/staabm)!

# Internals 🔍

- Simplify default return path in extensions
([#&#8203;2816](https://togithub.com/phpstan/phpstan-src/pull/2816)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

###
[`v1.10.52`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.52)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.51...1.10.52)

# Improvements 🔧

- Do not allow to generate baseline when reflection error occurs
(phpstan/phpstan-src@78ea9a6)
- Show internal errors that occured when generating a baseline
(phpstan/phpstan-src@c997ea9)

# Bugfixes 🐛

- Load PHP polyfills in bootstrap.php
(phpstan/phpstan@21df2d3),
[#&#8203;10375](https://togithub.com/phpstan/phpstan/issues/10375)

###
[`v1.10.51`](https://togithub.com/phpstan/phpstan/releases/tag/1.10.51)

[Compare
Source](https://togithub.com/phpstan/phpstan/compare/1.10.50...1.10.51)

# Bleeding edge 🔪

- ParamAttributesRule - promoted property attribute needs to target both
parameters and properties
(phpstan/phpstan-src@25d1552),
[#&#8203;10298](https://togithub.com/phpstan/phpstan/issues/10298)
- More precise `RecursiveIteratorIterator::__construct()` parameter
types
([#&#8203;2835](https://togithub.com/phpstan/phpstan-src/pull/2835)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- PhpDocParser: add config for lines in its AST & enable ignoring errors
within PHPDocs
([#&#8203;2807](https://togithub.com/phpstan/phpstan-src/pull/2807)),
thanks [@&#8203;janedbal](https://togithub.com/janedbal)!

*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 🔧

- Missing ThrowExprTypeRule - level 3
(phpstan/phpstan-src@0359ebc)
- Analyse stubs only when not only files are analysed
(phpstan/phpstan-src@4020240)
- Nicer error message in case of memory limit exhaustion in child
process
(phpstan/phpstan-src@816be99)

# Bugfixes 🐛

- Narrow `ReflectionEnum::getBackingType()` after
`ReflectionEnum::isBacked()`
([#&#8203;2830](https://togithub.com/phpstan/phpstan-src/pull/2830)),
[#&#8203;10167](https://togithub.com/phpstan/phpstan/issues/10167),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Fix coalescing on an optional array offset
([#&#8203;2834](https://togithub.com/phpstan/phpstan-src/pull/2834)),
[#&#8203;10317](https://togithub.com/phpstan/phpstan/issues/10317),
thanks [@&#8203;rvanvelzen](https://togithub.com/rvanvelzen)!
- More precise `??` type inference
(phpstan/phpstan-src@d801919),
[#&#8203;10327](https://togithub.com/phpstan/phpstan/issues/10327)

# Internals 🔍

- phpstan-src is now downgraded for PHP 7.2+ with
[`ondrejmirtes/simple-downgrader`](https://togithub.com/ondrejmirtes/simple-downgrader)
- Forward-compatible changes with PHP-Parser 5
(phpstan/phpstan-src@436bd79,
phpstan/phpstan-src@7eb66f6,
phpstan/phpstan-src@bf0b138),
[#&#8203;5086](https://togithub.com/phpstan/phpstan/issues/5086)
- Use `str_starts_with()` and `str_contains()` instead of `strpos()`
([#&#8203;2841](https://togithub.com/phpstan/phpstan-src/pull/2841)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!
- Building preload script - sort by name for reproducible builds
(phpstan/phpstan-src@995de26)
- Lazier creation of ParameterAcceptor
([#&#8203;2843](https://togithub.com/phpstan/phpstan-src/pull/2843)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Use const instead of properties
([#&#8203;2815](https://togithub.com/phpstan/phpstan-src/pull/2815)),
thanks [@&#8203;zonuexe](https://togithub.com/zonuexe)!
- PhpDocValueRule: cheapest check first
([#&#8203;2824](https://togithub.com/phpstan/phpstan-src/pull/2824)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!
- Faster `ParametersAcceptorSelector::combine()`
([#&#8203;2851](https://togithub.com/phpstan/phpstan-src/pull/2851)),
thanks [@&#8203;staabm](https://togithub.com/staabm)!

</details>

<details>
<summary>sebastianbergmann/phpunit (phpunit/phpunit)</summary>

###
[`v10.5.7`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.6...10.5.7)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.6...10.5.7)

###
[`v10.5.6`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.5...10.5.6)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.5...10.5.6)

###
[`v10.5.5`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.4...10.5.5)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.4...10.5.5)

###
[`v10.5.4`](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.3...10.5.4)

[Compare
Source](https://togithub.com/sebastianbergmann/phpunit/compare/10.5.3...10.5.4)

</details>

<details>
<summary>rectorphp/rector (rector/rector)</summary>

###
[`v0.19.0`](https://togithub.com/rectorphp/rector/releases/tag/0.19.0):
Released Rector 0.19.0

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.13...0.19.0)

In this release we merged 2 directories into `/src` to speed up class
loading and make work with code easier. This leads to BC change in
namespace for your custom rules:

```diff
-use Rector\Core\
+use Rector\
```

That's it!

#### New Features 🥳

- \[psr-4] Move /packages directory to /src under single Rector\
namespace
([#&#8203;5414](https://togithub.com/rectorphp/rector-src/pull/5414))
- \[Arguments] Allow no default value on ArgumentAdderRector
([#&#8203;5382](https://togithub.com/rectorphp/rector-src/pull/5382))
- **Add related polyfill interface to other PHP 8.0/7.3 rules**
([#&#8203;5389](https://togithub.com/rectorphp/rector-src/pull/5389))
- \[CodingStyle] Add RemoveUselessAliasInUseStatementRector
([#&#8203;5394](https://togithub.com/rectorphp/rector-src/pull/5394))
- \[Php83] Add CombineHostPortLdapUriRector
([#&#8203;5397](https://togithub.com/rectorphp/rector-src/pull/5397))
- \[TypeDeclaration] optionally only add types for hard coded return
values in `ReturnTypeFromStrictScalarReturnExprRector`
([#&#8203;5364](https://togithub.com/rectorphp/rector-src/pull/5364)),
Thanks [@&#8203;RobertMe](https://togithub.com/RobertMe)!
- Add phpstan native cond types for getName() for nodes that always
return a string
([#&#8203;5413](https://togithub.com/rectorphp/rector-src/pull/5413))
- \[Strict] Add StaticProperty supporton may be unitialized static
property on DisallowedEmptyRuleFixerRector
([#&#8203;5428](https://togithub.com/rectorphp/rector-src/pull/5428))
- \[Php83] Add implements interface support on
AddOverrideAttributeToOverriddenMethodsRector
([#&#8203;5429](https://togithub.com/rectorphp/rector-src/pull/5429))
- \[cs] Make use of new ECS config
([#&#8203;5445](https://togithub.com/rectorphp/rector-src/pull/5445))

<br>

#### Bugfixes 🐛

- \[TypeDeclaration] Add false and true in union support on
ReturnUnionTypeRector
([#&#8203;5355](https://togithub.com/rectorphp/rector-src/pull/5355))
- Skip classes without final and exception as possibly invoke child
implement in AddVoidReturnTypeWhereNoReturnRector
([#&#8203;5381](https://togithub.com/rectorphp/rector-src/pull/5381))
- Skip non-final class method with no content in
AddVoidReturnTypeWhereNoReturnRector
([#&#8203;5386](https://togithub.com/rectorphp/rector-src/pull/5386))
- \[TypeDeclaration] Allow add void return type on magic `__invoke()`
method on AddVoidReturnTypeWhereNoReturnRector
([#&#8203;5376](https://togithub.com/rectorphp/rector-src/pull/5376))
- Add `ReturnTypeFromStrictBoolReturnExprRector` support for if/else
returns
([#&#8203;5384](https://togithub.com/rectorphp/rector-src/pull/5384))
- Skip void without final keyword in ReturnNeverTypeRector as could be
implemented with more precise children
([#&#8203;5379](https://togithub.com/rectorphp/rector-src/pull/5379))
- Fix StrictArrayParamDimFetchRector for string access
([#&#8203;5383](https://togithub.com/rectorphp/rector-src/pull/5383))
- Fix variable to property fetch update in
ClassPropertyAssignToConstructorPromotionRector
([#&#8203;5385](https://togithub.com/rectorphp/rector-src/pull/5385))
- \[Php] Fix filter cache on PolyfillPackagesProvider
([#&#8203;5390](https://togithub.com/rectorphp/rector-src/pull/5390))
- \[Parallel] Fix missing --xdebug in WorkerCommand line on
WorkerCommandLineFactory when --xdebug provided
([#&#8203;5398](https://togithub.com/rectorphp/rector-src/pull/5398))
- Bump phpstan to 1.10.50
([#&#8203;5399](https://togithub.com/rectorphp/rector-src/pull/5399))
- \[Php83] Handle dynamic host and port values on
CombineHostPortLdapUriRector
([#&#8203;5401](https://togithub.com/rectorphp/rector-src/pull/5401))
- \[config] Extract RectorConfigValidator and handle config validation
there
([#&#8203;5404](https://togithub.com/rectorphp/rector-src/pull/5404))
- \[psr-4] Update Rector core test reference
([#&#8203;5410](https://togithub.com/rectorphp/rector-src/pull/5410))
- \[cleanup] Decouple changelog generator
([#&#8203;5412](https://togithub.com/rectorphp/rector-src/pull/5412))
- \[Strict] Handle may be unitialized property on
DisallowedEmptyRuleFixerRector
([#&#8203;5409](https://togithub.com/rectorphp/rector-src/pull/5409))
- Bump min. version to PHP 8.2 - readonly classes
([#&#8203;5415](https://togithub.com/rectorphp/rector-src/pull/5415))
- Decouple LongAndDependentComplexRectorRule to cognitive-complexity
package
([#&#8203;5427](https://togithub.com/rectorphp/rector-src/pull/5427))
- \[TypeDeclaration] Skip with empty() check on
StrictArrayParamDimFetchRector
([#&#8203;5432](https://togithub.com/rectorphp/rector-src/pull/5432))
- \[TypeDeclaration] Allow both integer and string index array on
StrictArrayParamDimFetchRector
([#&#8203;5433](https://togithub.com/rectorphp/rector-src/pull/5433))
- \[TypeDeclaration] Skip re-assign with call and use as arg on
StrictArrayParamDimFetchRector
([#&#8203;5434](https://togithub.com/rectorphp/rector-src/pull/5434))
- \[CodeQuality] Handle crash with call inside loop on
SimplifyForeachToCoalescingRector
([#&#8203;5436](https://togithub.com/rectorphp/rector-src/pull/5436))
- \[TypeDeclaration] Handle with default null on
ParamTypeByMethodCallTypeRector
([#&#8203;5437](https://togithub.com/rectorphp/rector-src/pull/5437))
- \[NodeTypeResolver] Handle crash
PHPStan\File\CouldNotReadFileException: Could not read file on
IntermediateSourceLocator
([#&#8203;5438](https://togithub.com/rectorphp/rector-src/pull/5438))
- Allows to convert Spatie enum names to snake upper case
([#&#8203;5435](https://togithub.com/rectorphp/rector-src/pull/5435)),
Thanks [@&#8203;JoolsMcFly](https://togithub.com/JoolsMcFly)!
- fix: RenameMethodRector should handle NullsafeMethodCall
([#&#8203;5444](https://togithub.com/rectorphp/rector-src/pull/5444)),
Thanks [@&#8203;nikophil](https://togithub.com/nikophil)!
- \[Php80]\[CodeQuality] Handle crash on ChangeSwitchToMatchRector +
TernaryFalseExpressionToIfRector on under if else
([#&#8203;5446](https://togithub.com/rectorphp/rector-src/pull/5446))
- Skip cond with side effect in RemoveDeadConditionAboveReturnRector
([#&#8203;5424](https://togithub.com/rectorphp/rector-src/pull/5424))
- \[DeadCode] Skip nullable array on
RemoveUnusedNonEmptyArrayBeforeForeachRector
([#&#8203;5375](https://togithub.com/rectorphp/rector-src/pull/5375))
- Keep called method in RemoveEmptyClassMethodRector
([#&#8203;5425](https://togithub.com/rectorphp/rector-src/pull/5425))

<br>

#### Removed 💀

- \[DeadCode] Remove RemoveJustPropertyFetchForAssignRector as tailored
for single case of private project, not practical for generic use
([#&#8203;5418](https://togithub.com/rectorphp/rector-src/pull/5418))
- remove array spread from coding style, as often part of personal
preference
(rectorphp/rector-src@a326b85)

###
[`v0.18.13`](https://togithub.com/rectorphp/rector/releases/tag/0.18.13):
Released Rector 0.18.13

[Compare
Source](https://togithub.com/rectorphp/rector/compare/0.18.12...0.18.13)

#### New Features 🥳

- \[DeadCode] Add Function\_ support on RemoveUselessReturnTagRector
([#&#8203;5325](https://togithub.com/rectorphp/rector-src/pull/5325))
- \[TypeDeclaration] Add MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5327](https://togithub.com/rectorphp/rector-src/pull/5327))
- \[DeadCode] Add Function\_ support on RemoveUselessParamTagRector
([#&#8203;5331](https://togithub.com/rectorphp/rector-src/pull/5331))
- \[DeadCode] Add RemoveNullTagValueNodeRector
([#&#8203;5352](https://togithub.com/rectorphp/rector-src/pull/5352))

<br>

#### Bugfixes 🐛

- \[Php83] Fix const from applying incorrect types
([#&#8203;5326](https://togithub.com/rectorphp/rector-src/pull/5326)),
Thanks [@&#8203;peterfox](https://togithub.com/peterfox)!
- \[TypeDeclaration] Fix missing change type to DateTimeInterface on
MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5329](https://togithub.com/rectorphp/rector-src/pull/5329))
- \[TypeDeclaration] Handle DateTimeInterface from use statement on
MergeDateTimePropertyTypeDeclarationRector
([#&#8203;5330](https://togithub.com/rectorphp/rector-src/pull/5330))
- \[TypeDeclaration] Handle assign $this on
TypedPropertyFromAssignsRector
([#&#8203;5333](https://togithub.com/rectorphp/rector-src/pull/5333))
- Fix array type if property is used in
TypedPropertyFromStrictConstructorRector
([#&#8203;5339](https://togithub.com/rectorphp/rector-src/pull/5339))
- \[Naming] Skip DateTimeImmutable on RenamePropertyToMatchTypeRector
([#&#8203;5340](https://togithub.com/rectorphp/rector-src/pull/5340))
- \[PHP 7.4] Skip typed properties in the set, as standalone set now
available
([#&#8203;5342](https://togithub.com/rectorphp/rector-src/pull/5342))
- \[TypeDeclaration] Skip has child return different type on
ReturnNeverTypeRector
([#&#8203;5343](https://togithub.com/rectorphp/rector-src/pull/5343))
- \[Experiment]\[TypeDeclaration] Allow change abstract class methods
with body on ReturnType\*Rector
([#&#8203;5344](https://togithub.com/rectorphp/rector-src/pull/5344))
- \[Php55] Make StringClassNameToClassConstantRector configurable to
keep first pre-backslash string configurable
([#&#8203;5354](https://togithub.com/rectorphp/rector-src/pull/5354))
- \[TypeDeclaration] Skip casted to (array) on
StrictArrayParamDimFetchRector
([#&#8203;5356](https://togithub.com/rectorphp/rector-src/pull/5356))
- \[TypeDeclaration] Return new static from different object on
ReturnTypeFromStrictTypedCallRector
([#&#8203;5357](https://togithub.com/rectorphp/rector-src/pull/5357))
- \[TypeDeclaration] Allow return static from under function on
ReturnTypeFromStrictTypedCallRector
([#&#8203;5358](https://togithub.com/rectorphp/rector-src/pull/5358))
- \[Naming] Skip `$this` in
RenameForeachValueVariableToMatchExprVariableRector
([#&#8203;5360](https://togithub.com/rectorphp/rector-src/pull/5360)),
Thanks [@&#8203;sreichel](https://togithub.com/sreichel)!
- \[Transform] Do not create a new node if the existing node is already
the correct one on AttributeKeyToClassConstFetchRector
([#&#8203;5328](https://togithub.com/rectorphp/rector-src/pull/5328)),
Thanks [@&#8203;SerethiX](https://togithub.com/SerethiX)!
- Bump to php parser 4.18
([#&#8203;5362](https://togithub.com/rectorphp/rector-src/pull/5362))
- \[CodeQuality] Skip Superglobals variable on
SimplifyEmptyCheckOnEmptyArrayRector
([#&#8203;5369](https://togithub.com/rectorphp/rector-src/pull/5369))
- \[Php55] Handle crash after exit() on GetCalledClassToSelfClassRector
([#&#8203;5372](https://togithub.com/rectorphp/rector-src/pull/5372))
- \[CodeQuality] Skip method call on else on
TernaryFalseExpressionToIfRector
([#&#8203;5373](https://togithub.com/rectorphp/rector-src/pull/5373))
- Remove return type in case of never in RemoveUselessReturnTagRector
([#&#8203;5323](https://togithub.com/rectorphp/rector-src/pull/5323)),
Thanks [@&#8203;staabm](https://togithub.com/staabm)!
- \[DeadCode] Remove unused
[@&#8203;return](https://togithub.com/return) mixed on
RemoveUselessReturnTagRector
([#&#8203;5332](https://togithub.com/rectorphp/rector-src/pull/5332))
- \[DeadCode] Skip has parent class with \__call() magic method on
RemoveParentCallWithoutParentRector
([#&#8203;5336](https://togithub.com/rectorphp/rector-src/pull/5336))
- \[PHP 5.5] Remove extra preslash in class reference, as in practice
removal manually
([#&#8203;5338](https://togithub.com/rectorphp/rector-src/pull/5338))
- \[DeadCode] Remove null as never used param type in
RemoveUselessParamTagRector
([#&#8203;5348](https://togithub.com/rectorphp/rector-src/pull/5348))
- **Remove json throw on error rule from PHP 7.3 set, as changed
behavior and must be applied on purpose**
([#&#8203;5349](https://togithub.com/rectorphp/rector-src/pull/5349))
- \[Testing] Remove unnecessary set Parameter Source on TestingParser
([#&#8203;5371](https://togithub.com/rectorphp/rector-src/pull/5371))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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/Lendable/json-serializer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ben Challis <ben@lendable.co.uk>
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants