MyCLabsMethodCallToEnumConstRector should only refactor according to RuleDefinition
@samsonasik ya está trabajando en esto.
Desde el 3/11/2026.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 55/100
Línea de trabajo
Start with the MyCLabsMethodCallToEnumConstRector rule class and its getRuleDefinition() CodeSample, which shows SomeEnum::VALUE()->getKey() becoming SomeEnum::VALUE->name. The report says the rewrite also fires where the enum constructor expects an enum object, causing a TypeError. Reproduce with the linked demo, then find which call sites the rule should skip. Done means the reported case produces no change and the rule's existing tests still 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 |
Hi,
the rule MyCLabsMethodCallToEnumConstRector should only refactor according to the rule definiton:
public function getRuleDefinition(): RuleDefinition
{
return new RuleDefinition('Refactor MyCLabs enum fetch to Enum const', [
new CodeSample(
<<<'CODE_SAMPLE'
$name = SomeEnum::VALUE()->getKey();
CODE_SAMPLE
,
<<<'CODE_SAMPLE'
$name = SomeEnum::VALUE->name;
CODE_SAMPLE
),
]);
}
Always changing SomeEnum::VALUE() to SomeEnum::VALUE can produce fatal errors like in the example:
Fatal error: Uncaught TypeError: test\A::__construct(): Argument #1 ($evl) must be of type Endroid\QrCode\ErrorCorrectionLevel, string given, called in
Best regards
Minimal PHP Code Causing Issue
https://getrector.com/demo/fd1ed71b-d792-4531-a52a-0679bce0c134
Expected Behaviour
No change
- 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
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
Todos los issues de rectorphp/rector
Issues similares
-
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
-
bug ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
hashtopolis/server#2614 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
sync-en
Dificultad 1/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día