Parens incorrectly removed when cloning the result of an expression
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginnen Sie damit, die gemeldete PHP-Eingabe zu reproduzieren und Prettier 2.7.1 mit der erwarteten Ausgabe zu vergleichen. Verfolgen Sie, wie der Formatter die Klammern um den clone expression behandelt; als erledigt gilt die Aufgabe, wenn die äußeren Klammern erhalten bleiben, sodass der null-coalesce expression geklont wird, mit einem Regressionstest, der diesen Fall abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- PHP
- Sterne
- 1.9k
- Forks
- 139
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus prettier/plugin-php
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 62/100
prettier/plugin-php#2416 · 2 Kommentare · 6 Reaktionen ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 64/100
prettier/plugin-php#2498 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
prettier/plugin-php#2495 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
prettier/plugin-php#2494 · 1 Kommentar ·
-
strange format issue Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
prettier/plugin-php#2490 ·
Alle Issues in prettier/plugin-php
Ähnliche Issues
-
tooling
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
UX
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug customer-reported
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
MagnaCapax/PMSS#949 ·
-
responsive-media kses allow-list strips clipPathUnits, collapsing objectBoundingBox clip paths Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Automattic/static-site-importer#1829 ·