Browse Source

bug: GroupImportFixer - support for aliased imports (#6951)

Co-authored-by: SpacePossum <possumfromspace@gmail.com>
Greg Korba 1 year ago
parent
commit
bf00b37a04
2 changed files with 35 additions and 4 deletions
  1. 3 4
      src/Fixer/Import/GroupImportFixer.php
  2. 32 0
      tests/Fixer/Import/GroupImportFixerTest.php

+ 3 - 4
src/Fixer/Import/GroupImportFixer.php

@@ -208,7 +208,7 @@ final class GroupImportFixer extends AbstractFixer
 
         $tokens->insertAt($insertIndex, $newTokens);
 
-        return \count($newTokens) + 1;
+        return \count($newTokens);
     }
 
     /**
@@ -252,15 +252,14 @@ final class GroupImportFixer extends AbstractFixer
         $insertIndex += $newTokensCount;
 
         if ($useDeclaration->isAliased()) {
-            $inserted = $this->insertToGroupUseWithAlias($tokens, $insertIndex + 1, $useDeclaration);
+            $inserted = $this->insertToGroupUseWithAlias($tokens, $insertIndex + 1, $useDeclaration) + 1;
             $insertedTokens += $inserted;
             $insertIndex += $inserted;
         }
 
         $tokens->insertAt($insertIndex, new Token([T_STRING, $useDeclaration->getShortName()]));
-        ++$insertedTokens;
 
-        return $insertedTokens;
+        return ++$insertedTokens;
     }
 
     /**

+ 32 - 0
tests/Fixer/Import/GroupImportFixerTest.php

@@ -37,6 +37,38 @@ final class GroupImportFixerTest extends AbstractFixerTestCase
     {
         yield [
             '<?php
+namespace X1\Y1;
+
+use A\{B as X, C as Y};
+use B\C;
+',
+            '<?php
+namespace X1\Y1;
+
+use A\B as X;
+use A\C as Y;
+use B\C;
+',
+        ];
+
+        yield [
+            '<?php
+
+namespace Foo\Bar;
+
+use A\{B as X, C as Y};
+',
+            '<?php
+
+namespace Foo\Bar;
+
+use A\B as X;
+use A\C as Y;
+',
+        ];
+
+        yield [
+            '<?php
 
 namespace Test;