Remove code sniff for sorted use declarations
authorMatthias Schmidt <gravatronics@live.com>
Mon, 7 May 2018 17:14:30 +0000 (19:14 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Mon, 7 May 2018 17:14:30 +0000 (19:14 +0200)
See #2544

CodeSniff/WCF/Sniffs/Namespaces/SortedUseDeclarationSniff.php [deleted file]
CodeSniff/WCF/ruleset.xml

diff --git a/CodeSniff/WCF/Sniffs/Namespaces/SortedUseDeclarationSniff.php b/CodeSniff/WCF/Sniffs/Namespaces/SortedUseDeclarationSniff.php
deleted file mode 100644 (file)
index dc8b87a..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-/**
- * This sniff is based on Squiz_Sniffs_Classes_ClassFileNameSniff. Originally written
- * by Greg Sherwood <gsherwood@squiz.net> and released under the terms of the BSD Licence.
- * See: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php
- * 
- * @author     Tim Duesterhus
- * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @package    com.woltlab.wcf
- * @category   Community Framework
- */
-class WCF_Sniffs_Namespaces_SortedUseDeclarationSniff implements PHP_CodeSniffer_Sniff {
-       /**
-        * Returns an array of tokens this test wants to listen for.
-        *
-        * @return array
-        */
-       public function register() {
-               return array(T_OPEN_TAG);
-       }
-
-       /**
-        * Processes this test, when one of its tokens is encountered.
-        *
-        * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
-        * @param int                             $stackPtr  The position of the current token in
-        *                                                                              the stack passed in $tokens.
-        *
-        * @return void
-        */
-       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
-               $tokens = $phpcsFile->getTokens();
-               
-               $classes = array();
-               while (true) {
-                       $stackPtr = $phpcsFile->findNext(T_USE, ($stackPtr + 1));
-                       if ($stackPtr === false) break;
-                       
-                       // Ignore USE keywords inside closures.
-                       $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true);
-                       if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS) {
-                               break;
-                       }
-                       $start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
-                       $end = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($start + 1), null, true);
-                       $class = '';
-                       for ($i = $start; $i < $end; $i++) {
-                               $class .= $tokens[$i]['content'];
-                       }
-                       $classes[$stackPtr] = $class;
-               }
-               $previous = '';
-               foreach ($classes as $stackPtr => $class) {
-                       if ($previous !== '') {
-                               if ($class == $previous) {
-                                       $error = 'Using class %s twice;';
-                                       $data = array($class);
-                                       $phpcsFile->addError($error, $stackPtr, 'DuplicateUse', $data);
-                                       
-                               }
-                               else if (!$this->compare($previous, $class)) {
-                                       $error = 'Uses are misordered; check %s and %s';
-                                       $data = array($previous, $class);
-                                       $phpcsFile->addError($error, $stackPtr, 'MisorderedUse', $data);
-                               }
-                       }
-                       $previous = $class;
-               }
-       }
-       
-       public function compare($classA, $classB) {
-               if ($classA == $classB) return true;
-               
-               $classA = explode('\\', $classA);
-               $classB = explode('\\', $classB);
-               
-               for ($i = 0, $max = min(count($classA), count($classB)); $i < $max; $i++) {
-                       if ($classA[$i] == $classB[$i]) {
-                               unset($classA[$i], $classB[$i]);
-                       }
-               }
-               $classA = array_values($classA);
-               $classB = array_values($classB);
-               
-               $classALength = count($classA);
-               $classBLength = count($classB);
-               for ($i = 0, $max = min($classALength, $classBLength); $i < $max; $i++) {
-                       if ($i + 1 === $classBLength && $i + 1 !== $classALength) return true;
-                       if ($i + 1 !== $classBLength && $i + 1 === $classALength) return false;
-                       
-                       if (strcasecmp($classA[$i], $classB[$i]) < 0) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-}
index 411c89a0aba07cdbece3420e92dfa43edfa9479c..11e9a0788b84d2d989f47ed49e4c622f506346ba 100644 (file)
        <rule ref="WCF.Functions.OpeningFunctionBraceKernighanRitchie" />
        <rule ref="WCF.Methods.MethodDeclaration" />
        <rule ref="WCF.Namespaces.ClassMustBeImported" />
-       <rule ref="WCF.Namespaces.SortedUseDeclaration" />
        <rule ref="WCF.Namespaces.UseDeclaration" />
        <rule ref="WCF.WhiteSpace.SuperfluousWhitespace" />
        <rule ref="Zend.Files.ClosingTag" />
        
-       
        <!-- Use Unix newlines -->
        <rule ref="Generic.Files.LineEndings">
                <properties>