MergePhpstanDocTagIntoNativeRector and RemoveUselessReturnTagRector removes return type that adds a clarification
Une pull request liée a déjà été fusionnée.
- #8924 par @APX403 — fusionnée
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- PHP
- Étoiles
- 10.5k
- Forks
- 742
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rectorphp/rector
-
System error: Class ... should be known at this pointPeut-être pris @APX403 l’a pris il y a 2 jours. Ouvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
-
MyCLabsMethodCallToEnumConstRector should only refactor according to RuleDefinitionPeut-être pris @samsonasik l’a pris il y a 5 jours. Ouvertebug
Difficulté 3/5 Une demi-journée Accessibilité débutants 55/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
Toutes les issues de rectorphp/rector
Issues similaires
-
sync-en
Difficulté 1/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Plugin directory: block icon SVG loses elements other than <path> in the Blocks sectionPeut-être pris @obenland l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
WordPress/wordpress.org#1209 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
docs good first issue php
Difficulté 1/5 1-3 heures Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement UI
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour