Legoktm has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/360164 )

Change subject: Fix handling of nested parenthesis in 
ParenthesesAroundKeywordSniff
......................................................................

Fix handling of nested parenthesis in ParenthesesAroundKeywordSniff

Use the parenthesis_closer information that PHPCS determined instead of
blindly removing the next closing parenthesis that is present.

Bug: T168352
Change-Id: I93a75a251456c92b7962a34f4a269d79b89449c9
---
M MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
M MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php
M 
MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.expect
M 
MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.fixed
4 files changed, 22 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/codesniffer 
refs/changes/64/360164/1

diff --git a/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php 
b/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
index e5147e7..4a8007d 100644
--- a/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
+++ b/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
@@ -56,21 +56,20 @@
                                $tokens[$stackPtr]['content'] . ' keyword must 
not be used as a function.',
                                $stackPtr + 1,
                                'ParenthesesAroundKeywords' );
+
                        if ( $fix === true ) {
                                if ( $nextToken['code'] === T_OPEN_PARENTHESIS 
) {
                                        $phpcsFile->fixer->replaceToken( 
$stackPtr + 1, '' );
+                                       $closer = $tokens[$stackPtr + 
1]['parenthesis_closer'];
+                                       $phpcsFile->fixer->replaceToken( 
$closer, '' );
                                } else {
                                        $phpcsFile->fixer->replaceToken( 
$stackPtr + 2, '' );
+                                       $closer = $tokens[$stackPtr + 
2]['parenthesis_closer'];
+                                       $phpcsFile->fixer->replaceToken( 
$closer, '' );
                                        if ( $tokens[$stackPtr + 3]['code'] === 
T_WHITESPACE ) {
                                                
$phpcsFile->fixer->replaceToken( $stackPtr + 3, '' );
                                        }
                                }
-                               // remove the closing parenthesis
-                               $i = 0;
-                               while ( $tokens[$stackPtr + $i]['code'] !== 
T_CLOSE_PARENTHESIS ) {
-                                       $i++;
-                               }
-                               $phpcsFile->fixer->replaceToken( $stackPtr + 
$i, '' );
                        }
                }
        }
diff --git 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php
index 1dc3864..1c174c5 100644
--- 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php
+++ 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php
@@ -15,3 +15,9 @@
 include_once( 'jfrpg' );
 include_once ( 'krpg' );
 include_once 'rkjgjpr';
+require_once ( getenv( 'MW_INSTALL_PATH' ) !== false
+       ? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
+       : __DIR__ . '/../../../maintenance/Maintenance.php' );
+require_once( getenv( 'MW_INSTALL_PATH' ) !== false
+       ? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
+       : __DIR__ . '/../../../maintenance/Maintenance.php' );
diff --git 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.expect
 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.expect
index bf83f04..6ef33e8 100644
--- 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.expect
+++ 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.expect
@@ -17,8 +17,12 @@
     |         |     function.
  16 | WARNING | [x] include_once keyword must not be used as a
     |         |     function.
+ 18 | WARNING | [x] require_once keyword must not be used as a
+    |         |     function.
+ 21 | WARNING | [x] require_once keyword must not be used as a
+    |         |     function.
 ----------------------------------------------------------------------
-PHPCBF CAN FIX THE 10 MARKED SNIFF VIOLATIONS AUTOMATICALLY
+PHPCBF CAN FIX THE 12 MARKED SNIFF VIOLATIONS AUTOMATICALLY
 ----------------------------------------------------------------------
 
 Time: 24496728 mins, 22.78 secs; Memory: 11.5Mb
diff --git 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.fixed
 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.fixed
index 9e22b47..0af7965 100644
--- 
a/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.fixed
+++ 
b/MediaWiki/Tests/files/ExtraCharacters/parenthesis_after_keyword_tag_fail.php.fixed
@@ -15,3 +15,9 @@
 include_once 'jfrpg';
 include_once 'krpg';
 include_once 'rkjgjpr';
+require_once getenv( 'MW_INSTALL_PATH' ) !== false
+       ? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
+       : __DIR__ . '/../../../maintenance/Maintenance.php';
+require_once getenv( 'MW_INSTALL_PATH' ) !== false
+       ? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
+       : __DIR__ . '/../../../maintenance/Maintenance.php';

-- 
To view, visit https://gerrit.wikimedia.org/r/360164
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I93a75a251456c92b7962a34f4a269d79b89449c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/tools/codesniffer
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to