Browse Source

Merge branch '2.18'

Dariusz Ruminski 3 years ago
parent
commit
7318cef313

+ 1 - 1
src/Fixer/Alias/NoMixedEchoPrintFixer.php

@@ -153,7 +153,7 @@ final class NoMixedEchoPrintFixer extends AbstractFixer implements Configuration
     {
         $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
 
-        if (!$prevToken->equalsAny([';', '{', '}', [T_OPEN_TAG]])) {
+        if (!$prevToken->equalsAny([';', '{', '}', ')', [T_OPEN_TAG], [T_ELSE]])) {
             return;
         }
 

+ 1 - 1
src/Fixer/Basic/BracesFixer.php

@@ -126,7 +126,7 @@ class Foo
      * {@inheritdoc}
      *
      * Must run before ArrayIndentationFixer, MethodArgumentSpaceFixer, MethodChainingIndentationFixer.
-     * Must run after ClassAttributesSeparationFixer, ElseifFixer, LineEndingFixer, MethodSeparationFixer, NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUselessElseFixer, SingleTraitInsertPerStatementFixer.
+     * Must run after ClassAttributesSeparationFixer, ClassDefinitionFixer, ElseifFixer, LineEndingFixer, MethodSeparationFixer, NoAlternativeSyntaxFixer, NoEmptyStatementFixer, NoUselessElseFixer, SingleSpaceAfterConstructFixer, SingleTraitInsertPerStatementFixer.
      */
     public function getPriority()
     {

+ 10 - 0
src/Fixer/ClassNotation/ClassDefinitionFixer.php

@@ -97,6 +97,16 @@ interface Bar extends
         );
     }
 
+    /**
+     * {@inheritdoc}
+     *
+     * Must run before BracesFixer.
+     */
+    public function getPriority()
+    {
+        return 36;
+    }
+
     /**
      * {@inheritdoc}
      */

+ 1 - 0
src/Fixer/FunctionNotation/FunctionDeclarationFixer.php

@@ -103,6 +103,7 @@ $f = fn () => null;
      * {@inheritdoc}
      *
      * Must run before MethodArgumentSpaceFixer.
+     * Must run after SingleSpaceAfterConstructFixer.
      */
     public function getPriority()
     {

+ 10 - 0
src/Fixer/LanguageConstruct/SingleSpaceAfterConstructFixer.php

@@ -175,6 +175,16 @@ yield  from  baz();
         );
     }
 
+    /**
+     * {@inheritdoc}
+     *
+     * Must run before BracesFixer, FunctionDeclarationFixer.
+     */
+    public function getPriority()
+    {
+        return 36;
+    }
+
     /**
      * {@inheritdoc}
      */

+ 3 - 0
tests/AutoReview/FixerFactoryTest.php

@@ -76,6 +76,7 @@ final class FixerFactoryTest extends TestCase
             [$fixers['braces'], $fixers['method_chaining_indentation']],
             [$fixers['class_attributes_separation'], $fixers['braces']],
             [$fixers['class_attributes_separation'], $fixers['indentation_type']],
+            [$fixers['class_definition'], $fixers['braces']],
             [$fixers['class_keyword_remove'], $fixers['no_unused_imports']],
             [$fixers['combine_consecutive_issets'], $fixers['multiline_whitespace_before_semicolons']],
             [$fixers['combine_consecutive_issets'], $fixers['no_singleline_whitespace_before_semicolons']],
@@ -266,6 +267,8 @@ final class FixerFactoryTest extends TestCase
             [$fixers['single_import_per_statement'], $fixers['no_unused_imports']],
             [$fixers['single_import_per_statement'], $fixers['space_after_semicolon']],
             [$fixers['single_line_throw'], $fixers['concat_space']],
+            [$fixers['single_space_after_construct'], $fixers['braces']],
+            [$fixers['single_space_after_construct'], $fixers['function_declaration']],
             [$fixers['single_trait_insert_per_statement'], $fixers['braces']],
             [$fixers['single_trait_insert_per_statement'], $fixers['space_after_semicolon']],
             [$fixers['standardize_increment'], $fixers['increment_style']],

+ 43 - 8
tests/Fixer/Alias/NoMixedEchoPrintFixerTest.php

@@ -30,6 +30,7 @@ final class NoMixedEchoPrintFixerTest extends AbstractFixerTestCase
      * @param null|string $input
      *
      * @dataProvider provideEchoToPrintFixCases
+     * @dataProvider provideEchoToPrintFixNewCases
      */
     public function testFixEchoToPrint($expected, $input = null)
     {
@@ -129,21 +130,28 @@ final class NoMixedEchoPrintFixerTest extends AbstractFixerTestCase
                 echo "bar";
                 ',
             ],
-            [
-                "<div><?php print 'foo' ?></div>",
-                "<div><?php echo 'foo' ?></div>",
-            ],
             [
                 '<?=$foo?>',
             ],
         ];
     }
 
+    public static function provideEchoToPrintFixNewCases()
+    {
+        foreach (self::getCodeSnippetsToConvertBothWays() as $name => $codeSnippet) {
+            yield [
+                sprintf($codeSnippet, 'print'),
+                sprintf($codeSnippet, 'echo'),
+            ];
+        }
+    }
+
     /**
      * @param string      $expected
      * @param null|string $input
      *
      * @dataProvider providePrintToEchoFixCases
+     * @dataProvider providePrintToEchoFixNewCases
      */
     public function testFixPrintToEcho($expected, $input = null)
     {
@@ -267,13 +275,19 @@ final class NoMixedEchoPrintFixerTest extends AbstractFixerTestCase
                 print "bar";
                 ',
             ],
-            [
-                "<div><?php echo 'foo' ?></div>",
-                "<div><?php print 'foo' ?></div>",
-            ],
         ];
     }
 
+    public static function providePrintToEchoFixNewCases()
+    {
+        foreach (self::getCodeSnippetsToConvertBothWays() as $name => $codeSnippet) {
+            yield [
+                sprintf($codeSnippet, 'echo'),
+                sprintf($codeSnippet, 'print'),
+            ];
+        }
+    }
+
     /**
      * @group legacy
      * @expectedDeprecation Passing NULL to set default configuration is deprecated and will not be supported in 3.0, use an empty array instead.
@@ -335,4 +349,25 @@ final class NoMixedEchoPrintFixerTest extends AbstractFixerTestCase
 
         static::assertSame($expected, $reflectionProperty->getValue($fixer));
     }
+
+    private static function getCodeSnippetsToConvertBothWays()
+    {
+        yield 'inside of HTML' => '<div><?php %1$s "foo" ?></div>';
+
+        yield 'foreach without curly brackets' => '<?php
+            %1$s "There will be foos: ";
+            foreach ($foos as $foo)
+                %1$s $foo;
+            %1$s "End of foos";
+        ';
+
+        yield 'if and else without curly brackets' => '<?php
+            if ($foo)
+                %1$s "One";
+            elseif ($bar)
+                %1$s "Two";
+            else
+                %1$s "Three";
+        ';
+    }
 }

+ 22 - 0
tests/Fixtures/Integration/priority/class_definition,braces.test

@@ -0,0 +1,22 @@
+--TEST--
+Integration of fixers: class_definition,braces.
+--RULESET--
+{"class_definition": true, "braces": {"position_after_functions_and_oop_constructs": "same"}}
+--EXPECT--
+<?php
+
+class Foo {
+}
+
+class Bar {
+}
+
+--INPUT--
+<?php
+
+class Foo{
+}
+
+class Bar
+{
+}

+ 19 - 0
tests/Fixtures/Integration/priority/single_space_after_construct,braces.test

@@ -0,0 +1,19 @@
+--TEST--
+Integration of fixers: single_space_after_construct,braces.
+--RULESET--
+{ "single_space_after_construct": true, "braces": {"position_after_control_structures": "next"}}
+--EXPECT--
+<?php
+if (true)
+{
+}
+else
+{
+}
+
+--INPUT--
+<?php
+if (true) {
+}
+else {
+}

+ 13 - 0
tests/Fixtures/Integration/priority/single_space_after_construct,function_declaration.test

@@ -0,0 +1,13 @@
+--TEST--
+Integration of fixers: single_space_after_construct,function_declaration.
+--RULESET--
+{"function_declaration": {"closure_function_spacing": "none"}, "single_space_after_construct": true}
+--EXPECT--
+<?php
+
+function() {};
+
+--INPUT--
+<?php
+
+function () {};