Parens incorrectly removed when cloning the result of an expression
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza reproduciendo la entrada PHP indicada y comparando Prettier 2.7.1 con la salida esperada. Sigue el tratamiento que hace el formateador de los paréntesis alrededor de la clone expression; se considera terminado cuando los paréntesis exteriores se conservan, de modo que se clone la null-coalesce expression, con una prueba de regresión que cubra este caso.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Prettier 2.7.1
PHP Plugin 0.19.1
# Options (if any):
# our .prettierrc
{
"phpVersion": "8.1",
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": true,
"trailingCommaPHP": true,
"braceStyle": "psr-2",
"requirePragma": false,
"insertPragma": false
}
Input:
$questions = clone ($panel->primaryViewer()?->questions() ?? new Questions());
Output:
$questions = clone $panel->primaryViewer()?->questions() ?? new Questions();
Expected behavior:
The outermost parens are being removed by prettier, affecting behavior. Given
$questions = clone ($panel->primaryViewer()?->questions() ?? new Questions());
if $panel->primaryViewer() is null, because prettier drops the outermost parens, it ends up leaving PHP to evaluate clone null - something I'm actively guarding against with the null coalesce operator.
I expect the parens to remain in place, resulting in the ?? new Questions() to be cloned.
- Lenguaje dominante
- PHP
- Estrellas
- 1.9k
- Forks
- 139
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 prettier/plugin-php
-
PHP 8.3 not allowed in options? Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
prettier/plugin-php#2416 · 2 comentarios · 6 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
prettier/plugin-php#2498 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
prettier/plugin-php#2495 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
prettier/plugin-php#2494 · 1 comentario ·
-
strange format issue Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
prettier/plugin-php#2490 ·
Todos los issues de prettier/plugin-php
Issues similares
-
tooling
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
UX
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
OpenConext/OpenConext-engineblock#2122 ·
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Automattic/safe-publish#594 ·