Skip to content

Commit 8e2ae85

Browse files
committed
make use of is assign attribute
1 parent 5afe2cd commit 8e2ae85

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

rules-tests/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector/Fixture/skip_assign_ops.php.inc

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,3 @@ namespace Rector\Tests\Transform\Rector\ArrayDimFetch\ArrayDimFetchToMethodCallR
66
$object['key'] += 42;
77
$object['key'] -= 42;
88
$object['key'] *= 42;
9-
$object['key'] /= 42;
10-
$object['key'] %= 42;
11-
$object['key'] **= 42;
12-
$object['key'] .= 'value';
13-
$object['key'] &= 42;
14-
$object['key'] |= 42;
15-
$object['key'] ^= 42;
16-
$object['key'] <<= 42;
17-
$object['key'] >>= 42;
18-
$object['key'] ??= 'value';
19-
20-
?>

rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use PhpParser\Node\Expr;
1010
use PhpParser\Node\Expr\ArrayDimFetch;
1111
use PhpParser\Node\Expr\Assign;
12-
use PhpParser\Node\Expr\AssignOp;
1312
use PhpParser\Node\Expr\BinaryOp\BooleanAnd;
1413
use PhpParser\Node\Expr\Isset_;
1514
use PhpParser\Node\Expr\MethodCall;
@@ -61,20 +60,15 @@ public function getRuleDefinition(): RuleDefinition
6160

6261
public function getNodeTypes(): array
6362
{
64-
return [AssignOp::class, Assign::class, Isset_::class, Unset_::class, ArrayDimFetch::class];
63+
return [Assign::class, Isset_::class, Unset_::class, ArrayDimFetch::class];
6564
}
6665

6766
/**
68-
* @template TNode of ArrayDimFetch|Assign|Isset_|Unset_
69-
* @param TNode $node
67+
* @param ArrayDimFetch|Assign|Isset_|Unset_ $node
7068
* @return ($node is Unset_ ? Stmt[]|int : ($node is Isset_ ? Expr|int : MethodCall|int|null))
7169
*/
7270
public function refactor(Node $node): array|Expr|null|int
7371
{
74-
if ($node instanceof AssignOp) {
75-
return NodeVisitor::DONT_TRAVERSE_CHILDREN;
76-
}
77-
7872
if ($node instanceof Unset_) {
7973
return $this->handleUnset($node);
8074
}
@@ -96,6 +90,10 @@ public function refactor(Node $node): array|Expr|null|int
9690
return null;
9791
}
9892

93+
if ($node->getAttribute(AttributeKey::IS_ASSIGN_OP_VAR)) {
94+
return null;
95+
}
96+
9997
return $this->createExplicitMethodCall($node, 'get');
10098
}
10199

0 commit comments

Comments
 (0)