diff --git a/src/Fixer/Basic/BracesFixer.php b/src/Fixer/Basic/BracesFixer.php index 399363084cc..ae912f95ccf 100644 --- a/src/Fixer/Basic/BracesFixer.php +++ b/src/Fixer/Basic/BracesFixer.php @@ -126,7 +126,7 @@ public function bar($baz) * {@inheritdoc} * * Must run before ArrayIndentationFixer, MethodArgumentSpaceFixer, MethodChainingIndentationFixer. - * Must run after ClassAttributesSeparationFixer, ClassDefinitionFixer, ElseifFixer, LineEndingFixer, MethodSeparationFixer, NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUselessElseFixer, SingleSpaceAfterConstructFixer, SingleTraitInsertPerStatementFixer. + * Must run after ClassAttributesSeparationFixer, ClassDefinitionFixer, ElseifFixer, LineEndingFixer, MethodSeparationFixer, NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUselessElseFixer, SingleLineThrowFixer, SingleSpaceAfterConstructFixer, SingleTraitInsertPerStatementFixer. */ public function getPriority() { diff --git a/src/Fixer/FunctionNotation/SingleLineThrowFixer.php b/src/Fixer/FunctionNotation/SingleLineThrowFixer.php index 18c90641ab7..3d2e3ee37a1 100644 --- a/src/Fixer/FunctionNotation/SingleLineThrowFixer.php +++ b/src/Fixer/FunctionNotation/SingleLineThrowFixer.php @@ -63,12 +63,12 @@ public function isCandidate(Tokens $tokens) /** * {@inheritdoc} * - * Must run before ConcatSpaceFixer. + * Must run before BracesFixer, ConcatSpaceFixer. */ public function getPriority() { // must be fun before ConcatSpaceFixer - return 1; + return 36; } /** @@ -81,18 +81,15 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens) continue; } - /** @var int $openingBraceCandidateIndex */ - $openingBraceCandidateIndex = $tokens->getNextTokenOfKind($index, [';', '(']); + /** @var int $endCandidateIndex */ + $endCandidateIndex = $tokens->getNextTokenOfKind($index, [';', '(', '{']); - while ($tokens[$openingBraceCandidateIndex]->equals('(')) { - /** @var int $closingBraceIndex */ - $closingBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openingBraceCandidateIndex); - - /** @var int $openingBraceCandidateIndex */ - $openingBraceCandidateIndex = $tokens->getNextTokenOfKind($closingBraceIndex, [';', '(']); + while ($tokens[$endCandidateIndex]->equals('(')) { + $closingBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $endCandidateIndex); + $endCandidateIndex = $tokens->getNextTokenOfKind($closingBraceIndex, [';', '(', '{']); } - $this->trimNewLines($tokens, $index, $openingBraceCandidateIndex); + $this->trimNewLines($tokens, $index, $endCandidateIndex); } } diff --git a/tests/AutoReview/FixerFactoryTest.php b/tests/AutoReview/FixerFactoryTest.php index 6c1a1c63147..4b74491b789 100644 --- a/tests/AutoReview/FixerFactoryTest.php +++ b/tests/AutoReview/FixerFactoryTest.php @@ -266,6 +266,7 @@ public function provideFixersPriorityCases() [$fixers['single_import_per_statement'], $fixers['no_singleline_whitespace_before_semicolons']], [$fixers['single_import_per_statement'], $fixers['no_unused_imports']], [$fixers['single_import_per_statement'], $fixers['space_after_semicolon']], + [$fixers['single_line_throw'], $fixers['braces']], [$fixers['single_line_throw'], $fixers['concat_space']], [$fixers['single_space_after_construct'], $fixers['braces']], [$fixers['single_space_after_construct'], $fixers['function_declaration']], diff --git a/tests/Fixer/FunctionNotation/SingleLineThrowFixerTest.php b/tests/Fixer/FunctionNotation/SingleLineThrowFixerTest.php index 2353c04f1ed..a1120926310 100644 --- a/tests/Fixer/FunctionNotation/SingleLineThrowFixerTest.php +++ b/tests/Fixer/FunctionNotation/SingleLineThrowFixerTest.php @@ -46,20 +46,20 @@ public function provideFixCases() "Foo" );']; - yield ['= 70000) { + yield [ + '= 80000) { yield [ 'getExceptionFactory()?->createAnException("Foo");', diff --git a/tests/Fixtures/Integration/priority/single_line_throw,braces.test b/tests/Fixtures/Integration/priority/single_line_throw,braces.test new file mode 100644 index 00000000000..0d64ad7fd2c --- /dev/null +++ b/tests/Fixtures/Integration/priority/single_line_throw,braces.test @@ -0,0 +1,20 @@ +--TEST-- +Integration of fixers: single_line_throw,braces. +--RULESET-- +{"braces": true, "single_line_throw": true} +--REQUIREMENTS-- +{"php": 70000} +--EXPECT-- +