From 578bda9c2c75321a7f4ea1ce692814c22354a856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Wer=C5=82os?= Date: Sat, 11 Dec 2021 22:16:23 +0100 Subject: [PATCH 1/2] DeclareEqualNormalizeFixer - fix for declare having multiple directives --- .../LanguageConstruct/DeclareEqualNormalizeFixer.php | 9 +++++++-- .../LanguageConstruct/DeclareEqualNormalizeFixerTest.php | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) 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..5f3165cb6cf 100644 --- a/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php +++ b/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php @@ -87,6 +87,11 @@ public function provideFixCases(): array null, ['space' => 'none'], ], + 'declare having multiple directives' => [ + ' Date: Sun, 12 Dec 2021 21:20:37 +0100 Subject: [PATCH 2/2] Add test --- .../LanguageConstruct/DeclareEqualNormalizeFixerTest.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php b/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php index 5f3165cb6cf..2ebad724b9a 100644 --- a/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php +++ b/tests/Fixer/LanguageConstruct/DeclareEqualNormalizeFixerTest.php @@ -87,11 +87,16 @@ public function provideFixCases(): array null, ['space' => 'none'], ], - 'declare having multiple directives' => [ + 'declare having multiple directives, single' => [ ' [ + ' 'single'], + ], ]; }