diff --git a/composer.json b/composer.json index 97be7266..bcd0f6de 100644 --- a/composer.json +++ b/composer.json @@ -15,13 +15,13 @@ "rector/jack": "^1.0", "rector/rector-src": "dev-main", "rector/swiss-knife": "^2.4", + "shipmonk/dead-code-detector": "^1.4", "symplify/easy-coding-standard": "^13.2", "symplify/phpstan-extensions": "^12.0", "symplify/phpstan-rules": "^14.13.1", "symplify/rule-doc-generator": "^12.2", "tomasvotruba/class-leak": "^2.1", "tomasvotruba/type-coverage": "^2.3", - "tomasvotruba/unused-public": "^2.2", "tracy/tracy": "^2.12" }, "autoload": { diff --git a/phpstan.neon b/phpstan.neon index ab151e7c..86fe6158 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,6 +7,11 @@ parameters: errorFormat: symplify reportUnmatchedIgnoredErrors: false + # avoids flaky DCD cache miss on fresh runs + shipmonkDeadCode: + cache: + offloadCollectorData: false + # see https://phpstan.org/writing-php-code/phpdoc-types#global-type-aliases typeAliases: StmtsAware: \PhpParser\Node\Stmt\Block | \PhpParser\Node\Expr\Closure | \PhpParser\Node\Stmt\Case_ | \PhpParser\Node\Stmt\Catch_ | \PhpParser\Node\Stmt\ClassMethod | \PhpParser\Node\Stmt\Do_ | \PhpParser\Node\Stmt\Else_ | \PhpParser\Node\Stmt\ElseIf_ | \PhpParser\Node\Stmt\Finally_ | \PhpParser\Node\Stmt\For_ | \PhpParser\Node\Stmt\Foreach_ | \PhpParser\Node\Stmt\Function_ | \PhpParser\Node\Stmt\If_ | \PhpParser\Node\Stmt\Namespace_ | \PhpParser\Node\Stmt\TryCatch | \PhpParser\Node\Stmt\While_ @@ -37,6 +42,11 @@ parameters: narrow_return: true ignoreErrors: + # DI-container instantiated constructors + - + identifier: shipmonk.deadMethod + message: '#^Unused .*?::__construct$#' + # php enum value minus - '#Parameter \#1 \$phpVersion of method Rector\\Config\\RectorConfig\:\:phpVersion\(\) expects (.*?), (.*?) given#'