MergePhpstanDocTagIntoNativeRector and RemoveUselessReturnTagRector removes return type that adds a clarification
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
The bug is in the rules RemoveUselessReturnTagRector and MergePhpstanDocTagIntoNativeRector, which wrongly drop a conditional @phpstan-return tag on isListOfArrays. Start with the existing test fixtures for these two rules and add the reported method as a case where the tag must stay. Done when the snippet keeps its @phpstan-return tag and the rule tests pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report
| Subject | Details |
|---|---|
| Rector version | 2.8.3 |
The @phpstan-return that narrows down the return type of isListOfArrays gets wrongfully removed. Code that uses $data[0] after isListOfArrays now throws a PHPStan error: expects array<mixed>, mixed given.
Minimal PHP Code Causing Issue
/**
* @param array<mixed> $data
*
* @phpstan-return ($data is list<array> ? true : false)
*/
private function isListOfArrays(array $data): bool
{
return \array_is_list($data) && \array_all($data, static fn (mixed $item): bool => \is_array($item));
}
https://getrector.com/demo/bb2e87cf-253d-4aed-9bc4-25a4a6b2f6a0
Expected Behaviour
Do not remove the return type.
EDIT: Claude told me to use @phpstan-assert-if-true list<array<mixed>> $data instead, which doesn't get removed by rector.
- Lenguaje dominante
- PHP
- Estrellas
- 10.5k
- Forks
- 742
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rectorphp/rector
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
MyCLabsMethodCallToEnumConstRector should only refactor according to RuleDefinitionPosiblemente ocupada @samsonasik la tomó hace 1 día. Abiertobug
Dificultad 3/5 Medio día Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
Todos los issues de rectorphp/rector
Issues similares
-
jira-created
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
-
No Code Attached Yet
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
joomla/joomla-cms#48786 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Icinga/icingaweb2-module-director#3188 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
mollie/WooCommerce#1327 ·
-
bug ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
hashtopolis/server#2614 ·
Los mantenedores suelen responder en 1 día