diff --git a/src/lint/linter/ArcanistXHPASTLinter.php b/src/lint/linter/ArcanistXHPASTLinter.php index 5dee2f81..896d60fd 100644 --- a/src/lint/linter/ArcanistXHPASTLinter.php +++ b/src/lint/linter/ArcanistXHPASTLinter.php @@ -2287,6 +2287,11 @@ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter { $keywords[] = head($typehint->getTokens()); } + $new_invocations = $root->selectDescendantsOfType('n_NEW'); + foreach ($new_invocations as $invocation) { + $keywords[] = head($invocation->getTokens()); + } + // NOTE: Although PHP generally allows arbitrary casing for all language // keywords, it's exceedingly rare for anyone to type, e.g., "CLASS" or // "cLaSs" in the wild. This list just attempts to cover unconventional @@ -2299,6 +2304,7 @@ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter { 'false' => 'false', 'null' => 'null', 'array' => 'array', + 'new' => 'new', ); foreach ($keywords as $keyword) { diff --git a/src/lint/linter/__tests__/xhpast/keyword-casing.lint-test b/src/lint/linter/__tests__/xhpast/keyword-casing.lint-test index 62ca7906..aa2d44dc 100644 --- a/src/lint/linter/__tests__/xhpast/keyword-casing.lint-test +++ b/src/lint/linter/__tests__/xhpast/keyword-casing.lint-test @@ -13,6 +13,9 @@ Array(); function f(array $x, ArRaY $y) { } + +new C(); +NeW C(); ~~~~~~~~~~ warning:6:1 warning:7:1 @@ -20,6 +23,7 @@ warning:8:1 warning:9:1 warning:11:1 warning:13:22 +warning:18:1 ~~~~~~~~~~