Parens incorrectly removed when cloning the result of an expression
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece reproduzindo a entrada PHP reportada e comparando o Prettier 2.7.1 com a saída esperada. Rastreie como o formatter trata os parênteses ao redor da clone expression; considera-se concluído quando os parênteses externos permanecem, para que a null-coalesce expression seja clonada, com um teste de regressão cobrindo esse caso.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- PHP
- Estrelas
- 1.9k
- Forks
- 139
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de prettier/plugin-php
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 62/100
prettier/plugin-php#2416 · 2 comentários · 6 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 64/100
prettier/plugin-php#2498 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
prettier/plugin-php#2495 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
prettier/plugin-php#2494 · 1 comentário ·
-
strange format issue Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
prettier/plugin-php#2490 ·
Todas as issues de prettier/plugin-php
Issues semelhantes
-
tooling
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
UX
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
OpenConext/OpenConext-engineblock#2122 ·
-
Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Automattic/safe-publish#594 ·