diff --git a/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php b/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php index c1320344963..8e0d4da92f2 100644 --- a/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php +++ b/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php @@ -88,9 +88,14 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void continue; } - while (!$tokens[++$index]->equals('=')); + $openParenthesisIndex = $tokens->getNextMeaningfulToken($index); + $closeParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openParenthesisIndex); - $this->{$callback}($tokens, $index); + for ($i = $closeParenthesisIndex; $i > $openParenthesisIndex; --$i) { + if ($tokens[$i]->equals('=')) { + $this->{$callback}($tokens, $i); + } + } } } diff --git a/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php b/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php index 395e8e2117a..2ebad724b9a 100644 --- a/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php +++ b/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php @@ -87,6 +87,16 @@ public function provideFixCases(): array null, ['space' => 'none'], ], + 'declare having multiple directives, single' => [ + ' [ + ' 'single'], + ], ]; }