File tree Expand file tree Collapse file tree 2 files changed +25
-2
lines changed
rules-tests/DeadCode/Rector/Closure/RemoveUnusedClosureVariableUseRector/Fixture
rules/DeadCode/Rector/Concat Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \Tests \DeadCode \Rector \Closure \RemoveUnusedClosureVariableUseRector \Fixture ;
4+
5+ /**
6+ * @see https://3v4l.org/9vhce
7+ */
8+ final class SkipUsedViaCompact
9+ {
10+ public function run ($ value )
11+ {
12+ return function () use ($ value ) {
13+ $ v = compact ('value ' );
14+
15+ return $ v ;
16+ };
17+ }
18+ }
Original file line number Diff line number Diff line change 66
77use PhpParser \Node ;
88use PhpParser \Node \Expr \Closure ;
9+ use Rector \DeadCode \NodeAnalyzer \ExprUsedInNodeAnalyzer ;
910use Rector \PhpParser \Node \BetterNodeFinder ;
1011use Rector \Rector \AbstractRector ;
1112use Symplify \RuleDocGenerator \ValueObject \CodeSample \CodeSample ;
1718final class RemoveUnusedClosureVariableUseRector extends AbstractRector
1819{
1920 public function __construct (
20- private readonly BetterNodeFinder $ betterNodeFinder
21+ private readonly BetterNodeFinder $ betterNodeFinder ,
22+ private readonly ExprUsedInNodeAnalyzer $ exprUsedInNodeAnalyzer
2123 ) {
2224 }
2325
@@ -72,7 +74,10 @@ public function refactor(Node $node): ?Node
7274 continue ;
7375 }
7476
75- $ isUseUsed = (bool ) $ this ->betterNodeFinder ->findVariableOfName ($ node ->stmts , $ useVariableName );
77+ $ isUseUsed = (bool ) $ this ->betterNodeFinder ->findFirst (
78+ $ node ->stmts ,
79+ fn (Node $ subNode ): bool => $ this ->exprUsedInNodeAnalyzer ->isUsed ($ subNode , $ useVariable ->var )
80+ );
7681 if ($ isUseUsed ) {
7782 continue ;
7883 }
You can’t perform that action at this time.
0 commit comments