withPaths([ __DIR__.'/src', __DIR__.'/tests', ]) ->withSets([ PestSetList::PEST_CODE_QUALITY, PestSetList::PEST_CHAIN, ]) ->withSkip([ __DIR__.'/src/Plugins/Parallel/Paratest/WrapperRunner.php', __DIR__.'/tests/Fixtures/Arch', ReturnNeverTypeRector::class, ArrowFunctionDelegatingCallToFirstClassCallableRector::class, NarrowObjectReturnTypeRector::class, RemoveParentDelegatingConstructorRector::class, RemoveDuplicatedReturnSelfDocblockRector::class, RemoveUselessUnionReturnDocblockRector::class, RemoveReturnTagIncompatibleWithNativeTypeRector::class => [ __DIR__.'/src/Expectations/HigherOrderExpectation.php', ], // Merges unrelated expectations into a single `toMatchArray()`, turning // `toContain()` into exact matches, dropping `->not`, and mistaking a // `toBeTrue()` failure message for an expected value. Unsafe here. UseToMatchArrayRector::class, // Test fixtures rely on "unused" constructors, params and properties // (resolved via the container or read through reflection), so the // dead-code and return-type rules below must not touch the test suite. RemoveEmptyClassMethodRector::class => [ __DIR__.'/tests', ], RemoveUnusedConstructorParamRector::class => [ __DIR__.'/tests', ], RemoveUnusedPrivatePropertyRector::class => [ __DIR__.'/tests', ], AddArrowFunctionReturnTypeRector::class => [ __DIR__.'/tests', ], ]) ->withPreparedSets( deadCode: true, codeQuality: true, typeDeclarations: true, privatization: true, earlyReturn: true, ) ->withPhpSets();