diff --git a/Symfony/CS/Fixer/Contrib/Php4ConstructorFixer.php b/Symfony/CS/Fixer/Contrib/Php4ConstructorFixer.php index 0937eefc750..cf07752ad72 100644 --- a/Symfony/CS/Fixer/Contrib/Php4ConstructorFixer.php +++ b/Symfony/CS/Fixer/Contrib/Php4ConstructorFixer.php @@ -158,7 +158,7 @@ private function fixConstructor(Tokens $tokens, $className, $classStart, $classE private function fixParent(Tokens $tokens, $classStart, $classEnd) { // check calls to the parent constructor - foreach (array_keys($tokens->findGivenKind(T_EXTENDS)) as $index) { + foreach ($tokens->findGivenKind(T_EXTENDS) as $index => $token) { $parentIndex = $tokens->getNextMeaningfulToken($index); $parentClass = $tokens[$parentIndex]->getContent(); diff --git a/Symfony/CS/Fixer/Contrib/PhpUnitConstructFixer.php b/Symfony/CS/Fixer/Contrib/PhpUnitConstructFixer.php index da7b7e2d841..66d57a6e5e5 100644 --- a/Symfony/CS/Fixer/Contrib/PhpUnitConstructFixer.php +++ b/Symfony/CS/Fixer/Contrib/PhpUnitConstructFixer.php @@ -94,27 +94,13 @@ public function getPriority() private function fixAssertNegative(Tokens $tokens, $index, $method) { - $sequence = $tokens->findSequence( - array( - array(T_VARIABLE, '$this'), - array(T_OBJECT_OPERATOR, '->'), - array(T_STRING, $method), - '(', - array(T_STRING, 'null'), - ',', - ), - $index + static $map = array( + 'false' => 'assertNotFalse', + 'null' => 'assertNotNull', + 'true' => 'assertNotTrue', ); - if (null === $sequence) { - return; - } - - $sequenceIndexes = array_keys($sequence); - $tokens[$sequenceIndexes[2]]->setContent('assertNotNull'); - $tokens->clearRange($sequenceIndexes[4], $tokens->getNextNonWhitespace($sequenceIndexes[5]) - 1); - - return $sequenceIndexes[5]; + return $this->fixAssert($map, $tokens, $index, $method); } private function fixAssertPositive(Tokens $tokens, $index, $method) @@ -125,6 +111,11 @@ private function fixAssertPositive(Tokens $tokens, $index, $method) 'true' => 'assertTrue', ); + return $this->fixAssert($map, $tokens, $index, $method); + } + + private function fixAssert(array $map, Tokens $tokens, $index, $method) + { $sequence = $tokens->findSequence( array( array(T_VARIABLE, '$this'), diff --git a/Symfony/CS/Fixer/Symfony/DoubleArrowMultilineWhitespacesFixer.php b/Symfony/CS/Fixer/Symfony/DoubleArrowMultilineWhitespacesFixer.php index 033af329ecf..b91ccb7c91e 100644 --- a/Symfony/CS/Fixer/Symfony/DoubleArrowMultilineWhitespacesFixer.php +++ b/Symfony/CS/Fixer/Symfony/DoubleArrowMultilineWhitespacesFixer.php @@ -29,7 +29,7 @@ public function fix(\SplFileInfo $file, $content) { $tokens = Tokens::fromCode($content); - foreach (array_keys($tokens->findGivenKind(T_DOUBLE_ARROW)) as $index) { + foreach ($tokens->findGivenKind(T_DOUBLE_ARROW) as $index => $token) { $this->fixWhitespace($tokens[$index - 1]); // do not move anything about if there is a comment following the whitespace if (!$tokens[$index + 2]->isComment()) { diff --git a/Symfony/CS/Fixer/Symfony/EmptyReturnFixer.php b/Symfony/CS/Fixer/Symfony/EmptyReturnFixer.php index b9390c12cf7..23b94a6860b 100644 --- a/Symfony/CS/Fixer/Symfony/EmptyReturnFixer.php +++ b/Symfony/CS/Fixer/Symfony/EmptyReturnFixer.php @@ -26,7 +26,7 @@ public function fix(\SplFileInfo $file, $content) { $tokens = Tokens::fromCode($content); - foreach (array_keys($tokens->findGivenKind(T_RETURN)) as $index) { + foreach ($tokens->findGivenKind(T_RETURN) as $index => $token) { if ($this->needFixing($tokens, $index)) { $this->clear($tokens, $index); } diff --git a/Symfony/CS/Fixer/Symfony/IncludeFixer.php b/Symfony/CS/Fixer/Symfony/IncludeFixer.php index 2464f9cf6bd..b74047bf88b 100644 --- a/Symfony/CS/Fixer/Symfony/IncludeFixer.php +++ b/Symfony/CS/Fixer/Symfony/IncludeFixer.php @@ -87,7 +87,7 @@ private function findIncludies(Tokens $tokens) $includies = array(); foreach ($tokens->findGivenKind($includyTokenKinds) as $includyTokens) { - foreach (array_keys($includyTokens) as $index) { + foreach ($includyTokens as $index => $token) { $includy = array( 'begin' => $index, 'braces' => null, diff --git a/Symfony/CS/Fixer/Symfony/NoEmptyLinesAfterPhpdocsFixer.php b/Symfony/CS/Fixer/Symfony/NoEmptyLinesAfterPhpdocsFixer.php index 8ca98d4195c..918531ed106 100644 --- a/Symfony/CS/Fixer/Symfony/NoEmptyLinesAfterPhpdocsFixer.php +++ b/Symfony/CS/Fixer/Symfony/NoEmptyLinesAfterPhpdocsFixer.php @@ -39,7 +39,7 @@ public function fix(\SplFileInfo $file, $content) $tokens = Tokens::fromCode($content); - foreach (array_keys($tokens->findGivenKind(T_DOC_COMMENT)) as $index) { + foreach ($tokens->findGivenKind(T_DOC_COMMENT) as $index => $token) { // get the next non-whitespace token inc comments, provided // that there is whitespace between it and the current token $next = $tokens->getNextNonWhitespace($index); diff --git a/Symfony/CS/Fixer/Symfony/ObjectOperatorFixer.php b/Symfony/CS/Fixer/Symfony/ObjectOperatorFixer.php index 52bba623be1..8682a18f33e 100644 --- a/Symfony/CS/Fixer/Symfony/ObjectOperatorFixer.php +++ b/Symfony/CS/Fixer/Symfony/ObjectOperatorFixer.php @@ -28,7 +28,7 @@ public function fix(\SplFileInfo $file, $content) // [Structure] there should not be space before or after T_OBJECT_OPERATOR $tokens = Tokens::fromCode($content); - foreach (array_keys($tokens->findGivenKind(T_OBJECT_OPERATOR)) as $index) { + foreach ($tokens->findGivenKind(T_OBJECT_OPERATOR) as $index => $token) { // clear whitespace before -> if ($tokens[$index - 1]->isWhitespace(array('whitespaces' => " \t")) && !$tokens[$index - 2]->isComment()) { $tokens[$index - 1]->clear(); diff --git a/Symfony/CS/Fixer/Symfony/PhpdocSeparationFixer.php b/Symfony/CS/Fixer/Symfony/PhpdocSeparationFixer.php index 14e9e06dbb3..b9ff5355a23 100644 --- a/Symfony/CS/Fixer/Symfony/PhpdocSeparationFixer.php +++ b/Symfony/CS/Fixer/Symfony/PhpdocSeparationFixer.php @@ -29,7 +29,7 @@ public function fix(\SplFileInfo $file, $content) { $tokens = Tokens::fromCode($content); - foreach ($tokens->findGivenKind(T_DOC_COMMENT) as $token) { + foreach ($tokens->findGivenKind(T_DOC_COMMENT) as $index => $token) { $doc = new DocBlock($token->getContent()); $this->fixDescription($doc); $this->fixAnnotations($doc); diff --git a/Symfony/CS/Fixer/Symfony/UnusedUseFixer.php b/Symfony/CS/Fixer/Symfony/UnusedUseFixer.php index 6dafd881cbf..13221eec23d 100644 --- a/Symfony/CS/Fixer/Symfony/UnusedUseFixer.php +++ b/Symfony/CS/Fixer/Symfony/UnusedUseFixer.php @@ -72,7 +72,7 @@ private function detectUseUsages($content, array $useDeclarations) { $usages = array(); - foreach (array_keys($useDeclarations) as $shortName) { + foreach ($useDeclarations as $shortName => $useDeclaration) { $usages[$shortName] = (bool) preg_match('/(?assertSame(true, $foo);'), - array( - 'assertTrue($a);', - 'assertSame(true, $a);', - ), - array( - 'assertTrue($a , "true" . $bar);', - 'assertSame(true , $a , "true" . $bar);', - ), - array( - 'assertFalse( $a, "false" . $bar);', - 'assertSame( false, $a, "false" . $bar);', - ), - array( - 'assertNull( $a , "null" . $bar);', - 'assertSame( null, $a , "null" . $bar);', - ), - array( - 'assertNotNull( $a , "notNull" . $bar);', - 'assertNotSame( null, $a , "notNull" . $bar);', - ), - array( - 'assertFalse( $a, "false" . $bar);', - 'assertEquals( false, $a, "false" . $bar);', - ), - array( - 'assertNotNull( $a , "notNull" . $bar);', - 'assertNotEquals( null, $a , "notNull" . $bar);', - ), array( 'assertTrue( @@ -106,5 +78,27 @@ public function provideTestFixCases() );', ), ); + + return array_merge( + $cases, + $this->generateCases('assert%s%s($a); //%s %s', 'assert%s(%s, $a); //%s %s'), + $this->generateCases('assert%s%s($a, "%s", "%s");', 'assert%s(%s, $a, "%s", "%s");') + ); + } + + private function generateCases($expectedTemplate, $inputTemplate) + { + $cases = array(); + $functionTypes = array('Same' => true, 'NotSame' => false, 'Equals' => true, 'NotEquals' => false); + foreach (array('true', 'false', 'null') as $type) { + foreach ($functionTypes as $method => $positive) { + $cases[] = array( + sprintf($expectedTemplate, $positive ? '' : 'Not', ucfirst($type), $method, $type), + sprintf($inputTemplate, $method, $type, $method, $type), + ); + } + } + + return $cases; } } diff --git a/Symfony/CS/Tokenizer/Transformer/CurlyClose.php b/Symfony/CS/Tokenizer/Transformer/CurlyClose.php index bd7462c568b..9db71296077 100644 --- a/Symfony/CS/Tokenizer/Transformer/CurlyClose.php +++ b/Symfony/CS/Tokenizer/Transformer/CurlyClose.php @@ -26,7 +26,7 @@ class CurlyClose extends AbstractTransformer */ public function process(Tokens $tokens) { - foreach (array_keys($tokens->findGivenKind(T_CURLY_OPEN)) as $index) { + foreach ($tokens->findGivenKind(T_CURLY_OPEN) as $index => $token) { $level = 1; $nestIndex = $index; diff --git a/Symfony/CS/Tokenizer/Transformer/DollarCloseCurlyBraces.php b/Symfony/CS/Tokenizer/Transformer/DollarCloseCurlyBraces.php index 0f0ba9bf275..61da5f25235 100644 --- a/Symfony/CS/Tokenizer/Transformer/DollarCloseCurlyBraces.php +++ b/Symfony/CS/Tokenizer/Transformer/DollarCloseCurlyBraces.php @@ -26,7 +26,7 @@ class DollarCloseCurlyBraces extends AbstractTransformer */ public function process(Tokens $tokens) { - foreach (array_keys($tokens->findGivenKind(T_DOLLAR_OPEN_CURLY_BRACES)) as $index) { + foreach ($tokens->findGivenKind(T_DOLLAR_OPEN_CURLY_BRACES) as $index => $token) { $nextIndex = $tokens->getNextTokenOfKind($index, array('}')); $tokens[$nextIndex]->override(array(CT_DOLLAR_CLOSE_CURLY_BRACES, '}', $tokens[$nextIndex]->getLine())); } diff --git a/Symfony/CS/Tokenizer/Transformer/DynamicPropBrace.php b/Symfony/CS/Tokenizer/Transformer/DynamicPropBrace.php index a831455b50e..514a96b89c1 100644 --- a/Symfony/CS/Tokenizer/Transformer/DynamicPropBrace.php +++ b/Symfony/CS/Tokenizer/Transformer/DynamicPropBrace.php @@ -26,7 +26,7 @@ class DynamicPropBrace extends AbstractTransformer */ public function process(Tokens $tokens) { - foreach (array_keys($tokens->findGivenKind(T_OBJECT_OPERATOR)) as $index) { + foreach ($tokens->findGivenKind(T_OBJECT_OPERATOR) as $index => $token) { if (!$tokens[$index + 1]->equals('{')) { continue; }