Skip to content

Commit ebf9eb2

Browse files
authored
[Php83] Fix infinite add - remove #[Override] on tearDown() method on AddOverrideAttributeToOverriddenMethodsRector when combined with NoSetupWithParentCallOverrideRector (#7903)
1 parent 27ce05f commit ebf9eb2

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Rector\Tests\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector\Fixture;
6+
7+
use Rector\Tests\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector\Source\SomeAbstractTestCase;
8+
9+
final class SkipTearDownOverrideTest extends SomeAbstractTestCase
10+
{
11+
protected function tearDown(): void
12+
{
13+
parent::tearDown();
14+
$result = null;
15+
}
16+
}

rules-tests/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector/Source/SomeAbstractTestCase.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,9 @@ protected function setUp(): void
1010
{
1111
$value = 1000;
1212
}
13+
14+
protected function tearDown(): void
15+
{
16+
$value = null;
17+
}
1318
}

rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ private function shouldSkipClassMethod(ClassMethod $classMethod): bool
246246
}
247247

248248
// skip test setup method override, as rather clutters the code than helps
249-
return $this->isName($classMethod, 'setUp') && $this->parentClassAnalyzer->hasParentCall($classMethod);
249+
return $this->isNames($classMethod, ['setUp', 'tearDown']) && $this->parentClassAnalyzer->hasParentCall($classMethod);
250250
}
251251

252252
private function shouldSkipParentClassMethod(ClassReflection $parentClassReflection, ClassMethod $classMethod): bool

0 commit comments

Comments
 (0)