Skip to content

Commit af1e0de

Browse files
authored
fix: correct "silence" typo to "silent" in needsParens (#2464)
The PHP parser emits node kind "silent" (not "silence"), so the case "silence" branch was dead code. Silent expressions with parens (e.g. (@$obj)->method()) would always have their parens dropped.
1 parent cf80f5e commit af1e0de

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

src/needs-parens.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ function needsParens(path, options) {
215215
default:
216216
return false;
217217
}
218-
case "silence":
218+
case "silent":
219219
case "cast":
220220
// TODO: bug https://github.com/glayzzle/php-parser/issues/172
221221
return node.parenthesizedExpression;

tests/parens/__snapshots__/jsfmt.spec.mjs.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,7 @@ $var = $page > 0 || ($page == 0 && $this->forcePageParam);
14611461
$var = $page > 0 || ($page == 0 && $this->forcePageParam);
14621462
14631463
@foo() || @foo();
1464-
@foo() || @foo();
1464+
(@foo()) || (@foo());
14651465
$var = @foo() || @foo();
14661466
$var = @foo() || @foo();
14671467
@@ -2228,7 +2228,7 @@ $var = $page > 0 || ($page == 0 && $this->forcePageParam);
22282228
$var = $page > 0 || ($page == 0 && $this->forcePageParam);
22292229
22302230
@foo() || @foo();
2231-
@foo() || @foo();
2231+
(@foo()) || (@foo());
22322232
$var = @foo() || @foo();
22332233
$var = @foo() || @foo();
22342234
@@ -6192,7 +6192,7 @@ echo @(1 / 0);
61926192
@foo();
61936193
61946194
$var = @foo();
6195-
$var = @foo();
6195+
$var = (@foo());
61966196
61976197
$var = @call() || @other();
61986198
$var = @call() || @other_class();
@@ -6204,7 +6204,7 @@ $var = @$cache[$key];
62046204
$var = @new MyClass();
62056205
$var = @new MyClass();
62066206
6207-
($var = @include "file.php") or die("Could not find file.php!");
6207+
($var = (@include "file.php")) or die("Could not find file.php!");
62086208
62096209
$var = @$_GET["data"];
62106210
@@ -6305,7 +6305,7 @@ echo @(1 / 0);
63056305
@foo();
63066306
63076307
$var = @foo();
6308-
$var = @foo();
6308+
$var = (@foo());
63096309
63106310
$var = @call() || @other();
63116311
$var = @call() || @other_class();
@@ -6317,7 +6317,7 @@ $var = @$cache[$key];
63176317
$var = @new MyClass();
63186318
$var = @new MyClass();
63196319
6320-
($var = @include "file.php") or die("Could not find file.php!");
6320+
($var = (@include "file.php")) or die("Could not find file.php!");
63216321
63226322
$var = @$_GET["data"];
63236323

tests/silent/__snapshots__/jsfmt.spec.mjs.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ $variable = @foo()->veryVeryVeryVeryVeryLongMethod()->veryVeryVeryVeryVeryLongMe
1919
$variable = @foo('VeryVeryVeryVeryVeryVeryLongArgument', 'VeryVeryVeryVeryVeryVeryLongArgument', 'VeryVeryVeryVeryVeryVeryLongArgument');
2020
@trigger_error($error, E_USER_DEPRECATED);
2121
$value = @ $cache[$key];
22+
(@$obj)->method();
23+
(@$arr)[0];
2224
2325
=====================================output=====================================
2426
<?php
@@ -45,6 +47,8 @@ $variable = @foo(
4547
);
4648
@trigger_error($error, E_USER_DEPRECATED);
4749
$value = @$cache[$key];
50+
(@$obj)->method();
51+
(@$arr)[0];
4852
4953
================================================================================
5054
`;

tests/silent/silent.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
$variable = @foo('VeryVeryVeryVeryVeryVeryLongArgument', 'VeryVeryVeryVeryVeryVeryLongArgument', 'VeryVeryVeryVeryVeryVeryLongArgument');
1212
@trigger_error($error, E_USER_DEPRECATED);
1313
$value = @ $cache[$key];
14+
(@$obj)->method();
15+
(@$arr)[0];

0 commit comments

Comments
 (0)