-
-
Notifications
You must be signed in to change notification settings - Fork 742
Closed
rectorphp/rector-src
#7896Description
Hi All,
I'm running into an interesting error while upgrading a legacy codebase. The offending piece of code belongs to a Tidy backend parser for an ancient Xinha WYSIWYG editor, probably created during the PHP 5 era or even earlier.
Rector chokes on the following part:
// PHP's urldecode doesn't understand %uHHHH for unicode
$_REQUEST['content'] = preg_replace('/%u([a-f0-9]{4,4})/ei', 'utf8_chr(0x$1)', $_REQUEST['content']);
with:
[ERROR] Could not process "/app/admin/addons/xinha-nightly/plugins/SuperClean/tidy.php" file, due to:
"System error: "Syntax error, unexpected T_STRING, expecting ')'1"
Stack trace:
#0 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php(173):
PhpParser\ParserAbstract->doParse()
#1 vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php(52): PhpParser\ParserAbstract->parse('<?php
utf8_chr(...')
#2 vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php(98):
Rector\PhpParser\Parser\SimplePhpParser->parseString('<?php utf8_chr(...')
#3 vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php(104):
Rector\Php72\NodeFactory\AnonymousFunctionFactory->createAnonymousFunctionFromExpr(Object(PhpParser\Node\Scala
r\String_))
#4 vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php(93):
Rector\Php55\Rector\FuncCall\PregReplaceEModifierRector->createAnonymousFunction(Object(PhpParser\Node\Arg))
#5 vendor/rector/rector/src/Rector/AbstractRector.php(106):
Rector\Php55\Rector\FuncCall\PregReplaceEModifierRector->refactor(Object(PhpParser\Node\Expr\FuncCall))
#6 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(152):
Rector\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Expr\FuncCall))
#7 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(180):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseNode(Object(PhpParser\Node\Expr\Assign))
#8 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(236):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Expression))
#9 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(140):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseArray(Array)
#10 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(236):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\If_))
#11 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(140):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseArray(Array)
#12 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(236):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseNode(Object(Rector\PhpParser\Node\FileNode))
#13 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(84):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverseArray(Array)
#14 vendor/rector/rector/src/Application/FileProcessor.php(96):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)
#15 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(178):
Rector\Application\FileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#16 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(152):
Rector\Application\ApplicationFileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#17 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(128):
Rector\Application\ApplicationFileProcessor->processFiles(Array, Object(Rector\ValueObject\Configuration),
Object(Closure), Object(Closure))
#18 vendor/rector/rector/src/Console/Command/ProcessCommand.php(182):
Rector\Application\ApplicationFileProcessor->run(Object(Rector\ValueObject\Configuration),
Object(RectorPrefix202602\Symfony\Component\Console\Input\ArgvInput))
#19 vendor/rector/rector/vendor/symfony/console/Command/Command.php(289):
Rector\Console\Command\ProcessCommand->execute(Object(RectorPrefix202602\Symfony\Component\Console\Input\ArgvI
nput), Object(RectorPrefix202602\Symfony\Component\Console\Output\ConsoleOutput))
#20 vendor/rector/rector/vendor/symfony/console/Application.php(899):
RectorPrefix202602\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202602\Symfony\Component\
Console\Input\ArgvInput), Object(RectorPrefix202602\Symfony\Component\Console\Output\ConsoleOutput))
#21 vendor/rector/rector/vendor/symfony/console/Application.php(279):
RectorPrefix202602\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Console\Command\ProcessCo
mmand), Object(RectorPrefix202602\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202602\Symfony\Component\Console\Output\ConsoleOutput))
#22 vendor/rector/rector/src/Console/ConsoleApplication.php(62):
RectorPrefix202602\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202602\Symfony\Component\Co
nsole\Input\ArgvInput), Object(RectorPrefix202602\Symfony\Component\Console\Output\ConsoleOutput))
#23 vendor/rector/rector/vendor/symfony/console/Application.php(162):
Rector\Console\ConsoleApplication->doRun(Object(RectorPrefix202602\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202602\Symfony\Component\Console\Output\ConsoleOutput))
#24 vendor/rector/rector/bin/rector.php(130): RectorPrefix202602\Symfony\Component\Console\Application->run()
#25 vendor/rector/rector/bin/rector(4): require_once('vendor/rec...')
#26 vendor/bin/rector(115): include('vendor/rec...')
#27 {main}". On line: 319
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels