Merge pull request #717 from rectorphp/func-rename

Fix inlining ofr changed FuncCall args [closes #624]
This commit is contained in:
Tomáš Votruba 2018-10-21 13:37:45 +02:00 committed by GitHub
commit 91797daad2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 11 deletions

View File

@ -4,7 +4,6 @@ namespace Rector\Rector\Function_;
use PhpParser\Node;
use PhpParser\Node\Expr\FuncCall;
use PhpParser\Node\Name;
use PhpParser\Node\Name\FullyQualified;
use Rector\Rector\AbstractRector;
use Rector\RectorDefinition\ConfiguredCodeSample;
@ -53,21 +52,15 @@ final class FunctionReplaceRector extends AbstractRector
*/
public function refactor(Node $node): ?Node
{
// anonymous function
if (! $node->name instanceof Name) {
return null;
}
$functionName = $node->name->toString();
$functionName = $this->getName($node);
if (! isset($this->oldFunctionToNewFunction[$functionName])) {
return null;
}
$newFunctionName = $this->oldFunctionToNewFunction[$functionName];
$functCallNode = new FuncCall(new FullyQualified($newFunctionName));
$functCallNode->args = $node->args;
$node->name = new FullyQualified($newFunctionName);
return $functCallNode;
return $node;
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Rector\Tests\Rector\Function_\FunctionReplaceRector\Wrong;
class SomeClass
{
protected function configure(): void
{
$this->setDescription(\Safe\sprintf(
'Splits monorepo packages to standalone repositories as defined in "%s" section of "%s" config.',
'parameters > directories_to_repositories',
'monorepo-builder.yml'
));
}
}

View File

@ -21,6 +21,7 @@ final class FunctionReplaceRectorTest extends AbstractRectorTestCase
public function provideWrongToFixedFiles(): Iterator
{
yield [__DIR__ . '/Wrong/wrong.php.inc', __DIR__ . '/Correct/correct.php.inc'];
yield [__DIR__ . '/Wrong/wrong2.php.inc', __DIR__ . '/Correct/correct2.php.inc'];
}
protected function provideConfig(): string

View File

@ -0,0 +1,15 @@
<?php
namespace Rector\Tests\Rector\Function_\FunctionReplaceRector\Wrong;
class SomeClass
{
protected function configure(): void
{
$this->setDescription(sprintf(
'Splits monorepo packages to standalone repositories as defined in "%s" section of "%s" config.',
'parameters > directories_to_repositories',
'monorepo-builder.yml'
));
}
}

View File

@ -1,3 +1,4 @@
services:
Rector\Rector\Function_\FunctionReplaceRector:
'view': 'Laravel\Templating\render'
view: 'Laravel\Templating\render'
sprintf: 'Safe\sprintf'