From 2fa8e1a1ae3ef582c03462a57c86acee1b051001 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sat, 19 Mar 2022 19:12:17 +0100 Subject: [PATCH] NoReservedKeywordParameterNames: more specific error indicator The warning for reserved keywords used in parameter names would previously be thrown on the line (+ column) where the `function` keyword for the function declaration was found. This commit changes that to pinpoint the exact location of the reserved keyword used as a parameter name. Includes adjusting one existing test to safeguard this (and safeguard handling with references and type declarations). --- .../NoReservedKeywordParameterNamesSniff.php | 2 +- .../NoReservedKeywordParameterNamesUnitTest.inc | 6 +++++- .../NoReservedKeywordParameterNamesUnitTest.php | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php b/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php index 5273b45..d57be87 100644 --- a/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php +++ b/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php @@ -181,7 +181,7 @@ public function process(File $phpcsFile, $stackPtr) if (isset($this->reservedNames[$name]) === true) { $phpcsFile->addWarning( 'It is recommended not to use reserved keywords as function parameter names. Found: %s', - $stackPtr, + $param['token'], $name . 'Found', [$param['name']] ); diff --git a/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.inc b/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.inc index 25994d4..48ee9d7 100644 --- a/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.inc +++ b/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.inc @@ -7,5 +7,9 @@ $closure = function ( $foreach, $array, $require ) {}; // Bad x 3. $fn = fn($callable, $list) => $callable($list); // Bad x 2. abstract class Foo { - abstract public function bar($string, $exit, $parent); // Bad x 3. + abstract public function bar( + string &$string, + Foo|false $exit, + ?int $parent + ); // Bad x 3. } diff --git a/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.php b/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.php index f1f490e..0504dbb 100644 --- a/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.php +++ b/Universal/Tests/NamingConventions/NoReservedKeywordParameterNamesUnitTest.php @@ -43,7 +43,9 @@ public function getWarningList() 5 => 2, 6 => 3, 7 => 2, - 10 => 3, + 11 => 1, + 12 => 1, + 13 => 1, ]; } }