mirror of
https://github.com/rectorphp/rector.git
synced 2025-04-20 15:31:58 +02:00
make test pass
This commit is contained in:
parent
82e8858158
commit
01a5fd8b41
@ -2,7 +2,12 @@
|
||||
|
||||
namespace Rector\NodeTraverser;
|
||||
|
||||
final class PriorityAwareNodeTraverser
|
||||
use PhpParser\NodeTraverser;
|
||||
|
||||
/**
|
||||
* Allow to add priorites to node vistiors
|
||||
*/
|
||||
final class PriorityAwareNodeTraverser extends NodeTraverser
|
||||
{
|
||||
// ...
|
||||
// might be needed, so ready here
|
||||
}
|
||||
|
@ -60,16 +60,6 @@ final class GetterToPropertyNodeVisitor extends NodeVisitorAbstract
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assign|MethodCall $assignOrMethodCallNode
|
||||
*/
|
||||
public function reconstruct(Node $assignOrMethodCallNode): void
|
||||
{
|
||||
if ($assignOrMethodCallNode instanceof Assign) {
|
||||
$this->processAssignment($assignOrMethodCallNode);
|
||||
}
|
||||
}
|
||||
|
||||
private function isCandidate(Node $node): bool
|
||||
{
|
||||
// $var = $this->get('some_service');
|
||||
@ -92,6 +82,20 @@ final class GetterToPropertyNodeVisitor extends NodeVisitorAbstract
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assign|MethodCall $assignOrMethodCallNode
|
||||
*/
|
||||
private function reconstruct(Node $assignOrMethodCallNode): void
|
||||
{
|
||||
if ($assignOrMethodCallNode instanceof Assign) {
|
||||
$this->processAssignment($assignOrMethodCallNode);
|
||||
}
|
||||
|
||||
if ($assignOrMethodCallNode instanceof MethodCall) {
|
||||
$this->processMethodCall($assignOrMethodCallNode);
|
||||
}
|
||||
}
|
||||
|
||||
private function processAssignment(Assign $assignNode): void
|
||||
{
|
||||
$refactoredMethodCall = $this->processMethodCallNode($assignNode->expr);
|
||||
@ -100,6 +104,14 @@ final class GetterToPropertyNodeVisitor extends NodeVisitorAbstract
|
||||
}
|
||||
}
|
||||
|
||||
private function processMethodCall(MethodCall $methodCallNode): void
|
||||
{
|
||||
$refactoredMethodCall = $this->processMethodCallNode($methodCallNode->var);
|
||||
if ($refactoredMethodCall) {
|
||||
$methodCallNode->var = $refactoredMethodCall;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is "$this->get('string')" statements?
|
||||
*/
|
||||
|
@ -2,12 +2,10 @@
|
||||
|
||||
namespace Rector\NodeVisitor\DependencyInjection\NamedServicesToConstructor;
|
||||
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\Assign;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
@ -18,6 +16,12 @@ use Rector\Builder\Naming\NameResolver;
|
||||
use Rector\Builder\PropertyBuilder;
|
||||
use Rector\Tests\NodeVisitor\DependencyInjection\NamedServicesToConstructorReconstructor\Source\LocalKernel;
|
||||
|
||||
/**
|
||||
* Add property to class...
|
||||
* Add property to constructor...
|
||||
*
|
||||
* How to dettect that particular class?
|
||||
*/
|
||||
final class NamedServicesToConstructorNodeVisitor extends NodeVisitorAbstract
|
||||
{
|
||||
/**
|
||||
@ -161,11 +165,13 @@ final class NamedServicesToConstructorNodeVisitor extends NodeVisitorAbstract
|
||||
$this->propertyBuilder->addPropertyToClass($classNode, $serviceType, $propertyName);
|
||||
|
||||
// creates "$this->propertyName"
|
||||
return new PropertyFetch(
|
||||
new Variable('this', [
|
||||
'name' => $propertyName
|
||||
]), $propertyName
|
||||
);
|
||||
// return new PropertyFetch(
|
||||
// new Variable('this', [
|
||||
// 'name' => $propertyName
|
||||
// ]), $propertyName
|
||||
// );
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ namespace Rector\Testing\Application;
|
||||
use PhpParser\Lexer;
|
||||
use PhpParser\Node;
|
||||
use PhpParser\NodeTraverser;
|
||||
use PhpParser\NodeVisitor;
|
||||
use PhpParser\Parser;
|
||||
use Rector\Printer\CodeStyledPrinter;
|
||||
use SplFileInfo;
|
||||
@ -40,7 +39,7 @@ final class FileReconstructor
|
||||
}
|
||||
|
||||
# ref: https://github.com/nikic/PHP-Parser/issues/344#issuecomment-298162516
|
||||
public function processFileWithNodeVisitor(SplFileInfo $file, NodeVisitor $nodeVisitor): string
|
||||
public function processFile(SplFileInfo $file): string
|
||||
{
|
||||
$fileContent = file_get_contents($file->getRealPath());
|
||||
|
||||
@ -50,7 +49,6 @@ final class FileReconstructor
|
||||
// keep format printer
|
||||
$oldTokens = $this->lexer->getTokens();
|
||||
|
||||
$this->nodeTraverser->addVisitor($nodeVisitor);
|
||||
$newStmts = $this->nodeTraverser->traverse($oldStmts);
|
||||
|
||||
return $this->codeStyledPrinter->printToString($oldStmts, $newStmts, $oldTokens);
|
||||
|
@ -29,17 +29,8 @@ abstract class AbstractReconstructorTestCase extends TestCase
|
||||
|
||||
protected function doTestFileMatchesExpectedContent(string $file, string $reconstructedFile): void
|
||||
{
|
||||
$reconstructedFileContent = $this->fileReconstructor->processFileWithNodeVisitor(
|
||||
new SplFileInfo($file), $this->getNodeVisitor()
|
||||
);
|
||||
$reconstructedFileContent = $this->fileReconstructor->processFile(new SplFileInfo($file));
|
||||
|
||||
$this->assertStringEqualsFile($reconstructedFile, $reconstructedFileContent);
|
||||
}
|
||||
|
||||
abstract protected function getNodeVisitorClass(): string;
|
||||
|
||||
private function getNodeVisitor(): NodeVisitor
|
||||
{
|
||||
return $this->container->get($this->getNodeVisitorClass());
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace Rector\Tests\NodeVisitor\DependencyInjection\InjectAnnotationToConstructorReconstructor;
|
||||
|
||||
use Rector\NodeVisitor\DependencyInjection\InjectAnnotationToConstructorNodeVisitor;
|
||||
use Rector\Testing\PHPUnit\AbstractReconstructorTestCase;
|
||||
|
||||
final class Test extends AbstractReconstructorTestCase
|
||||
@ -14,10 +13,5 @@ final class Test extends AbstractReconstructorTestCase
|
||||
__DIR__ . '/correct/correct.php.inc'
|
||||
);
|
||||
}
|
||||
|
||||
protected function getNodeVisitorClass(): string
|
||||
{
|
||||
return InjectAnnotationToConstructorNodeVisitor::class;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user