Skip to content

Commit e9eee8d

Browse files
[CodingStyle] Deprecate PostIncDecToPreIncDecRector (#8583)
Co-authored-by: GitHub Action <actions@github.com>
1 parent 81b00ad commit e9eee8d

9 files changed

Lines changed: 11 additions & 184 deletions

File tree

‎config/set/rector-preset.php‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
declare(strict_types=1);
44

5-
use Rector\CodingStyle\Rector\PostInc\PostIncDecToPreIncDecRector;
65
use Rector\Config\RectorConfig;
76
use Rector\DeadCode\Rector\Class_\RemoveRefactorDuplicatedNodeInstanceCheckRector;
87
use Rector\PHPUnit\CodeQuality\Rector\Class_\AddSeeTestAnnotationRector;
@@ -11,7 +10,6 @@
1110

1211
return static function (RectorConfig $rectorConfig): void {
1312
$rectorConfig->rules([
14-
PostIncDecToPreIncDecRector::class,
1513
FinalizeTestCaseClassRector::class,
1614
AddParamTypeToRefactorMethodRector::class,
1715
RemoveRefactorDuplicatedNodeInstanceCheckRector::class,

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/Fixture/as_for_loop.php.inc‎

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/Fixture/fixture.php.inc‎

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/Fixture/skip_as_array_key_inside_if.php.inc‎

Lines changed: 0 additions & 19 deletions
This file was deleted.

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/Fixture/skip_inside_if.php.inc‎

Lines changed: 0 additions & 19 deletions
This file was deleted.

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/PostIncDecToPreIncDecRectorTest.php‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

‎rules-tests/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector/config/configured_rule.php‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

‎rules/CodingStyle/Rector/PostInc/PostIncDecToPreIncDecRector.php‎

Lines changed: 8 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,18 @@
55
namespace Rector\CodingStyle\Rector\PostInc;
66

77
use PhpParser\Node;
8-
use PhpParser\Node\Expr\PostDec;
9-
use PhpParser\Node\Expr\PostInc;
10-
use PhpParser\Node\Expr\PreDec;
11-
use PhpParser\Node\Expr\PreInc;
128
use PhpParser\Node\Stmt\Expression;
139
use PhpParser\Node\Stmt\For_;
10+
use Rector\Configuration\Deprecation\Contract\DeprecatedInterface;
11+
use Rector\Exception\ShouldNotHappenException;
1412
use Rector\Rector\AbstractRector;
1513
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
1614
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
1715

1816
/**
19-
* @see \Rector\Tests\CodingStyle\Rector\PostInc\PostIncDecToPreIncDecRector\PostIncDecToPreIncDecRectorTest
17+
* @deprecated This rule is deprecated, as it is a cosmetic coding-style preference with little value. Use a coding standard tool instead.
2018
*/
21-
final class PostIncDecToPreIncDecRector extends AbstractRector
19+
final class PostIncDecToPreIncDecRector extends AbstractRector implements DeprecatedInterface
2220
{
2321
public function getRuleDefinition(): RuleDefinition
2422
{
@@ -65,45 +63,9 @@ public function getNodeTypes(): array
6563
*/
6664
public function refactor(Node $node): ?Node
6765
{
68-
if ($node instanceof Expression) {
69-
return $this->refactorExpression($node);
70-
}
71-
72-
return $this->refactorFor($node);
73-
}
74-
75-
private function refactorFor(For_ $for): For_|null
76-
{
77-
if (count($for->loop) !== 1) {
78-
return null;
79-
}
80-
81-
$singleLoopExpr = $for->loop[0];
82-
if (! $singleLoopExpr instanceof PostInc && ! $singleLoopExpr instanceof PostDec) {
83-
return null;
84-
}
85-
86-
$for->loop = [$this->processPrePost($singleLoopExpr)];
87-
88-
return $for;
89-
}
90-
91-
private function processPrePost(PostInc|PostDec $node): PreInc|PreDec
92-
{
93-
if ($node instanceof PostInc) {
94-
return new PreInc($node->var);
95-
}
96-
97-
return new PreDec($node->var);
98-
}
99-
100-
private function refactorExpression(Expression $expression): ?Expression
101-
{
102-
if ($expression->expr instanceof PostInc || $expression->expr instanceof PostDec) {
103-
$expression->expr = $this->processPrePost($expression->expr);
104-
return $expression;
105-
}
106-
107-
return null;
66+
throw new ShouldNotHappenException(sprintf(
67+
'"%s" rule is deprecated, as it is a cosmetic coding-style preference better handled by a coding standard tool',
68+
self::class
69+
));
10870
}
10971
}

‎rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,12 @@ public function refactor(Node $node): int|null|array|If_
122122
return null;
123123
}
124124

125-
$conditionStaticType = $this->nodeTypeResolver->getNativeType($node->cond);
126-
if (! $conditionStaticType->isTrue()->yes()) {
125+
if ($this->shouldSkipExpr($node->cond)) {
127126
return null;
128127
}
129128

130-
if ($this->shouldSkipExpr($node->cond)) {
129+
$conditionStaticType = $this->nodeTypeResolver->getNativeType($node->cond);
130+
if (! $conditionStaticType->isTrue()->yes()) {
131131
return null;
132132
}
133133

0 commit comments

Comments
 (0)