Skip to content

Add failing test fixture for ReadOnlyClassRector#3342

Closed
mvhirsch wants to merge 1 commit intorectorphp:mainfrom
mvhirsch:patch-1
Closed

Add failing test fixture for ReadOnlyClassRector#3342
mvhirsch wants to merge 1 commit intorectorphp:mainfrom
mvhirsch:patch-1

Conversation

@mvhirsch
Copy link
Copy Markdown
Contributor

@mvhirsch mvhirsch commented Feb 6, 2023

Failing Test for ReadOnlyClassRector

Closes rectorphp/rector#7734

Based on https://getrector.com/demo/98cc3d94-3225-4cd1-96e3-d3a0dff6d8e6

@mvhirsch
Copy link
Copy Markdown
Contributor Author

mvhirsch commented Feb 6, 2023

I'm currently not able to get this branch running locally (following the official guide on the website). I hope this will help anyway!

symfony composer fix-cs
> vendor/bin/ecs check --fix --ansi
PHP Fatal error:  Uncaught Error: Call to undefined function grapheme_strlen() in /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/string/UnicodeString.php:171
Stack trace:
#0 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/Helper.php(60): ECSPrefix202208\Symfony\Component\String\UnicodeString->length()
#1 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/ProgressBar.php(499): ECSPrefix202208\Symfony\Component\Console\Helper\Helper::length()
#2 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/ProgressBar.php(535): ECSPrefix202208\Symfony\Component\Console\Helper\ProgressBar::ECSPrefix202208\Symfony\Component\Console\Helper\{closure}()
#3 [internal function]: ECSPrefix202208\Symfony\Component\Console\Helper\ProgressBar->ECSPrefix202208\Symfony\Component\Console\Helper\{closure}()
#4 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/ProgressBar.php(546): preg_replace_callback()
#5 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/ProgressBar.php(409): ECSPrefix202208\Symfony\Component\Console\Helper\ProgressBar->buildLine()
#6 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Helper/ProgressBar.php(333): ECSPrefix202208\Symfony\Component\Console\Helper\ProgressBar->display()
#7 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Style/SymfonyStyle.php(260): ECSPrefix202208\Symfony\Component\Console\Helper\ProgressBar->start()
#8 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/src/Application/EasyCodingStandardApplication.php(126): ECSPrefix202208\Symfony\Component\Console\Style\SymfonyStyle->progressStart()
#9 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/packages/Parallel/Application/ParallelFileProcessor.php(134): Symplify\EasyCodingStandard\Application\EasyCodingStandardApplication->Symplify\EasyCodingStandard\Application\{closure}()
#10 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symplify/easy-parallel/src/ValueObject/ParallelProcess.php(126): Symplify\EasyCodingStandard\Parallel\Application\ParallelFileProcessor->Symplify\EasyCodingStandard\Parallel\Application\{closure}()
#11 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): ECSPrefix202208\Symplify\EasyParallel\ValueObject\ParallelProcess->ECSPrefix202208\Symplify\EasyParallel\ValueObject\{closure}()
#12 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/clue/ndjson-react/src/Decoder.php(110): ECSPrefix202208\Evenement\EventEmitter->emit()
#13 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): ECSPrefix202208\Clue\React\NDJson\Decoder->handleData()
#14 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/react/stream/src/Util.php(62): ECSPrefix202208\Evenement\EventEmitter->emit()
#15 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): ECSPrefix202208\React\Stream\Util::ECSPrefix202208\React\Stream\{closure}()
#16 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/react/stream/src/DuplexResourceStream.php(154): ECSPrefix202208\Evenement\EventEmitter->emit()
#17 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/react/event-loop/src/StreamSelectLoop.php(201): ECSPrefix202208\React\Stream\DuplexResourceStream->handleData()
#18 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/react/event-loop/src/StreamSelectLoop.php(173): ECSPrefix202208\React\EventLoop\StreamSelectLoop->waitForStreamActivity()
#19 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/packages/Parallel/Application/ParallelFileProcessor.php(163): ECSPrefix202208\React\EventLoop\StreamSelectLoop->run()
#20 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/src/Application/EasyCodingStandardApplication.php(137): Symplify\EasyCodingStandard\Parallel\Application\ParallelFileProcessor->check()
#21 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/src/Console/Command/CheckCommand.php(40): Symplify\EasyCodingStandard\Application\EasyCodingStandardApplication->run()
#22 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Command/Command.php(282): Symplify\EasyCodingStandard\Console\Command\CheckCommand->execute()
#23 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Application.php(870): ECSPrefix202208\Symfony\Component\Console\Command\Command->run()
#24 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Application.php(289): ECSPrefix202208\Symfony\Component\Console\Application->doRunCommand()
#25 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/src/Console/EasyCodingStandardConsoleApplication.php(41): ECSPrefix202208\Symfony\Component\Console\Application->doRun()
#26 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/console/Application.php(187): Symplify\EasyCodingStandard\Console\EasyCodingStandardConsoleApplication->doRun()
#27 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/bin/ecs.php(129): ECSPrefix202208\Symfony\Component\Console\Application->run()
#28 /path/to/project/rector-src/vendor/symplify/easy-coding-standard/bin/ecs(5): require('...')
#29 /path/to/project/rector-src/vendor/bin/ecs(120): include('...')
#30 {main}
  thrown in /path/to/project/rector-src/vendor/symplify/easy-coding-standard/vendor/symfony/string/UnicodeString.php on line 171
Script vendor/bin/ecs check --fix --ansi handling the fix-cs event returned with error code 255

@samsonasik
Copy link
Copy Markdown
Member

attribute line and stmt line are somehow has equal value, so it will require re-print the class node ( that may create noise in the diff).

another solution probably check line number of attribute for class by mark attribute temporary as comment and apply the line number to it.

@TomasVotruba
Copy link
Copy Markdown
Member

Thanks for the fix 👍

Merged in #3743

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect behavior of ReadOnlyClassRector

3 participants