Browse Source

fix: Priorities for fixers related to curly braces, empty lines and trailing whitespace (#7296)

Greg Korba 1 year ago
parent
commit
198d69ba58

+ 1 - 1
src/Fixer/ControlStructure/NoUselessElseFixer.php

@@ -40,7 +40,7 @@ final class NoUselessElseFixer extends AbstractNoUselessElseFixer
     /**
      * {@inheritdoc}
      *
-     * Must run before BracesFixer, CombineConsecutiveUnsetsFixer, NoBreakCommentFixer, NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoUselessReturnFixer, NoWhitespaceInBlankLineFixer, SimplifiedIfReturnFixer.
+     * Must run before BlankLineBeforeStatementFixer, BracesFixer, CombineConsecutiveUnsetsFixer, NoBreakCommentFixer, NoExtraBlankLinesFixer, NoTrailingWhitespaceFixer, NoUselessReturnFixer, NoWhitespaceInBlankLineFixer, SimplifiedIfReturnFixer, StatementIndentationFixer.
      * Must run after NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUnneededCurlyBracesFixer.
      */
     public function getPriority(): int

+ 1 - 1
src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php

@@ -239,7 +239,7 @@ function getValues() {
     /**
      * {@inheritdoc}
      *
-     * Must run after NoExtraBlankLinesFixer, NoUselessReturnFixer, ReturnAssignmentFixer, YieldFromArrayToYieldsFixer.
+     * Must run after NoExtraBlankLinesFixer, NoUselessElseFixer, NoUselessReturnFixer, ReturnAssignmentFixer, YieldFromArrayToYieldsFixer.
      */
     public function getPriority(): int
     {

+ 1 - 1
src/Fixer/Whitespace/NoWhitespaceInBlankLineFixer.php

@@ -42,7 +42,7 @@ final class NoWhitespaceInBlankLineFixer extends AbstractFixer implements Whites
      */
     public function getPriority(): int
     {
-        return -19;
+        return -99;
     }
 
     public function isCandidate(Tokens $tokens): bool

+ 1 - 1
src/Fixer/Whitespace/SingleBlankLineAtEofFixer.php

@@ -45,7 +45,7 @@ final class SingleBlankLineAtEofFixer extends AbstractFixer implements Whitespac
     public function getPriority(): int
     {
         // must run last to be sure the file is properly formatted before it runs
-        return -50;
+        return -100;
     }
 
     public function isCandidate(Tokens $tokens): bool

+ 1 - 1
src/Fixer/Whitespace/StatementIndentationFixer.php

@@ -64,7 +64,7 @@ else {
      * {@inheritdoc}
      *
      * Must run before HeredocIndentationFixer.
-     * Must run after ClassAttributesSeparationFixer, CurlyBracesPositionFixer, MethodArgumentSpaceFixer, YieldFromArrayToYieldsFixer.
+     * Must run after ClassAttributesSeparationFixer, CurlyBracesPositionFixer, MethodArgumentSpaceFixer, NoUselessElseFixer, YieldFromArrayToYieldsFixer.
      */
     public function getPriority(): int
     {

+ 2 - 0
tests/AutoReview/FixerFactoryTest.php

@@ -648,6 +648,7 @@ final class FixerFactoryTest extends TestCase
                 'set_type_to_cast',
             ],
             'no_useless_else' => [
+                'blank_line_before_statement',
                 'braces',
                 'combine_consecutive_unsets',
                 'no_break_comment',
@@ -656,6 +657,7 @@ final class FixerFactoryTest extends TestCase
                 'no_useless_return',
                 'no_whitespace_in_blank_line',
                 'simplified_if_return',
+                'statement_indentation',
             ],
             'no_useless_return' => [
                 'blank_line_before_statement',

+ 45 - 0
tests/Fixtures/Integration/misc/issue_7293.test

@@ -0,0 +1,45 @@
+--TEST--
+Integration of several fixers related to curly braces, empty lines and trailing whitespace.
+--RULESET--
+{
+    "blank_line_before_statement": true,
+    "no_extra_blank_lines": {"tokens": ["curly_brace_block"]},
+    "no_useless_else": true,
+    "no_trailing_whitespace": true,
+    "no_whitespace_in_blank_line": true,
+    "statement_indentation": true
+}
+--EXPECT--
+<?php
+
+function foo()
+{
+    if (f1()) {
+        if (f2()) {
+            return 1;
+        }
+
+        return 2;
+    } elseif (f3()) {
+        return 3;
+    }
+    f4();
+}
+
+--INPUT--
+<?php
+
+function foo()
+{
+    if (f1()) {
+        if (f2()) {
+            return 1;
+        } else {
+            return 2;
+        }
+    } elseif (f3()) {
+        return 3;
+    } else {
+        f4();
+    }
+}

+ 22 - 0
tests/Fixtures/Integration/priority/no_useless_else,blank_line_before_statement.test

@@ -0,0 +1,22 @@
+--TEST--
+Integration of fixers: no_useless_else,blank_line_before_statement.
+--RULESET--
+{"no_useless_else": true, "blank_line_before_statement": true}
+--EXPECT--
+<?php
+
+if (f1()) {
+    return 1;
+}
+  
+    return 2;
+
+
+--INPUT--
+<?php
+
+if (f1()) {
+    return 1;
+} else {
+    return 2;
+}

+ 21 - 0
tests/Fixtures/Integration/priority/no_useless_else,statement_indentation.test

@@ -0,0 +1,21 @@
+--TEST--
+Integration of fixers: no_useless_else,statement_indentation.
+--RULESET--
+{"no_useless_else": true, "statement_indentation": true}
+--EXPECT--
+<?php
+
+if (f1()) {
+    return 1;
+}  
+return 2;
+
+
+--INPUT--
+<?php
+
+if (f1()) {
+    return 1;
+} else {
+    return 2;
+}