rector: Fatal error: Uncaught TypeError: ExpectationAnalyzer::isValidAtCall(): Argument #1 ($methodCall) must be of type PhpParser\Node\Expr\MethodCall

Bug Report

Subject Details
Rector version ^0.12.15 (75c0b27d37ee34844b0eb5faf35742c6631d5ab2)

Error:

./bin/rector                               
   11/2156 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░]   0%PHP Fatal error:  Uncaught TypeError: Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer::isValidAtCall(): Argument #1 ($methodCall) must be of type PhpParser\Node\Expr\MethodCall, PhpParser\Node\Expr\StaticCall given, called in vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php on line 58 and defined in vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php:83
Stack trace:
#0 vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php(58): Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer->isValidAtCall()
#1 vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/ClassMethod/MigrateAtToConsecutiveExpectationsRector.php(71): Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer->getExpectationsFromExpressions()
#2 vendor/rector/rector/src/Rector/AbstractRector.php(243): Rector\PHPUnit\Rector\ClassMethod\MigrateAtToConsecutiveExpectationsRector->refactor()
#3 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(176): Rector\Core\Rector\AbstractRector->enterNode()
#4 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105): PhpParser\NodeTraverser->traverseArray()
#5 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196): PhpParser\NodeTraverser->traverseNode()
#6 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105): PhpParser\NodeTraverser->traverseArray()
#7 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196): PhpParser\NodeTraverser->traverseNode()
#8 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85): PhpParser\NodeTraverser->traverseArray()
#9 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(56): PhpParser\NodeTraverser->traverse()
#10 vendor/rector/rector/src/Application/FileProcessor.php(54): Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser->traverse()
#11 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(137): Rector\Core\Application\FileProcessor->refactor()
#12 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(101): Rector\Core\Application\FileProcessor\PhpFileProcessor->refactorNodesWithRectors()
#13 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(175): Rector\Core\Application\FileProcessor\PhpFileProcessor->process()
#14 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(148): Rector\Core\Application\ApplicationFileProcessor->processFiles()
#15 vendor/rector/rector/src/Console/Command/ProcessCommand.php(147): Rector\Core\Application\ApplicationFileProcessor->run()
#16 vendor/rector/rector/vendor/symfony/console/Command/Command.php(282): Rector\Core\Console\Command\ProcessCommand->execute()
#17 vendor/rector/rector/vendor/symfony/console/Application.php(853): RectorPrefix20220126\Symfony\Component\Console\Command\Command->run()
#18 vendor/rector/rector/vendor/symfony/console/Application.php(289): RectorPrefix20220126\Symfony\Component\Console\Application->doRunCommand()
#19 vendor/rector/rector/src/Console/ConsoleApplication.php(67): RectorPrefix20220126\Symfony\Component\Console\Application->doRun()
#20 vendor/rector/rector/vendor/symfony/console/Application.php(187): Rector\Core\Console\ConsoleApplication->doRun()
#21 vendor/rector/rector/bin/rector.php(57): RectorPrefix20220126\Symfony\Component\Console\Application->run()
#22 vendor/rector/rector/bin/rector(5): require_once('...')
#23 {main}
  thrown in vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php on line 83
Fatal error: Uncaught TypeError: Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer::isValidAtCall(): Argument #1 ($methodCall) must be of type PhpParser\Node\Expr\MethodCall, PhpParser\Node\Expr\StaticCall given, called in vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php on line 58 and defined in vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php:83
Stack trace:
#0 vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeAnalyzer/ExpectationAnalyzer.php(58): Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer->isValidAtCall()
#1 vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/ClassMethod/MigrateAtToConsecutiveExpectationsRector.php(71): Rector\PHPUnit\NodeAnalyzer\ExpectationAnalyzer->getExpectationsFromExpressions()
#2 vendor/rector/rector/src/Rector/AbstractRector.php(243): Rector\PHPUnit\Rector\ClassMethod\MigrateAtToConsecutiveExpectationsRector->refactor()
#3 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(176): Rector\Core\Rector\AbstractRector->enterNode()
#4 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105): PhpParser\NodeTraverser->traverseArray()
#5 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196): PhpParser\NodeTraverser->traverseNode()
#6 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105): PhpParser\NodeTraverser->traverseArray()
#7 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196): PhpParser\NodeTraverser->traverseNode()
#8 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85): PhpParser\NodeTraverser->traverseArray()
#9 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(56): PhpParser\NodeTraverser->traverse()
#10 vendor/rector/rector/src/Application/FileProcessor.php(54): Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser->traverse()
#11 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(137): Rector\Core\Application\FileProcessor->refactor()
#12 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(101): Rector\Core\Application\FileProcessor\PhpFileProcessor->refactorNodesWithRectors()
#13 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(175): Rector\Core\Application\FileProcessor\PhpFileProcessor->process()
#14 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(148): Rector\Core\Application\ApplicationFileProcessor->processFiles()
#15 vendor/rector/rector/src/Console/Command/ProcessCommand.php(147): Rector\Core\Application\ApplicationFileProcessor->run()
#16 vendor/rector/rector/vendor/symfony/console/Command/Command.php(282): Rector\Core\Console\Command\ProcessCommand->execute()
#17 vendor/rector/rector/vendor/symfony/console/Application.php(853): RectorPrefix20220126\Symfony\Component\Console\Command\Command->run()
#18 vendor/rector/rector/vendor/symfony/console/Application.php(289): RectorPrefix20220126\Symfony\Component\Console\Application->doRunCommand()
#19 vendor/rector/rector/src/Console/ConsoleApplication.php(67): RectorPrefix20220126\Symfony\Component\Console\Application->doRun()
#20 vendor/rector/rector/vendor/symfony/console/Application.php(187): Rector\Core\Console\ConsoleApplication->doRun()
#21 vendor/rector/rector/bin/rector.php(57): RectorPrefix20220126\Symfony\Component\Console\Application->run()
#22 vendor/rector/rector/bin/rector(5): require_once('...')

rector.php

<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
    // get parameters
    $parameters = $containerConfigurator->parameters();
    $parameters->set(Option::PATHS, [
        __DIR__ . '/tests'
    ]);

    // Define what rule sets will be applied
    // $containerConfigurator->import(LevelSetList::UP_TO_PHP_74);

    // get services (needed for register a single rule)
    $services = $containerConfigurator->services();

    // register a single rule
    $services->set(Rector\PHPUnit\Rector\ClassMethod\MigrateAtToConsecutiveExpectationsRector::class);
};

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 19 (11 by maintainers)

Commits related to this issue

Most upvoted comments

Should I open a new issue?

We’ll need a test fixture in the rule itself. See my last 2 PRs on how to add them.

That worked, thanks! 👍

I’ll check it… possibly string too 😃

Thanks!

Thanks 👍 , I’m looking into it