Bug Report
| Subject |
Details |
| Rector version |
last dev-main |
| Installed as |
composer dependency |
Minimal PHP Code Causing Issue
See https://getrector.com/demo/8690845d-21e2-4d05-af11-f515b4cf890f
<?php
class FilterAssert
{
public static function boolean(callable $filter): void
{
switch ($filter) {
case $filter instanceof Closure:
$reflection = new ReflectionFunction($filter);
break;
case is_object($filter):
$reflection = new ReflectionMethod($filter, '__invoke');
break;
default:
throw new InvalidArgumentException(
sprintf('Expected Closure or invokable object on callable filter, %s given', gettype($filter))
);
}
var_dump($reflection->getReturnType());
}
}
$filter = new class {
public function __invoke(int $datum): bool
{
return $datum === 1;
}
};
FilterAssert::boolean($filter);
Responsible rules
ChangeSwitchToMatchRector
Expected Behavior
This should use match(true):
- return match ($filter) {
+ return match (true) {
The current behaviour cause different result, see
Bug Report
Minimal PHP Code Causing Issue
See https://getrector.com/demo/8690845d-21e2-4d05-af11-f515b4cf890f
Responsible rules
ChangeSwitchToMatchRectorExpected Behavior
This should use
match(true):The current behaviour cause different result, see
match(true): https://3v4l.org/aE6Wc (working)