Skip to content

Commit 2bd4b02

Browse files
committed
skip non-equal type with var type
1 parent 1518a8a commit 2bd4b02

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace Rector\Tests\DeadCode\Rector\Property\RemoveUselessVarTagRector\Fixture;
4+
5+
use DateTime;
6+
use Rector\Tests\DeadCode\Rector\Property\RemoveUselessVarTagRector\Source\SomeReturnDocblock;
7+
8+
$obj = new SomeReturnDocblock();
9+
/** @var DateTime $return */
10+
$return = $obj->get();
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Rector\Tests\DeadCode\Rector\Property\RemoveUselessVarTagRector\Source;
4+
5+
use DateTime;
6+
7+
class SomeReturnDocblock
8+
{
9+
/**
10+
* @return DateTime
11+
*/
12+
public function get()
13+
{
14+
}
15+
}

rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ public function isDead(VarTagValueNode $varTagValueNode, Property|ClassConst|Exp
4545
? $node->expr
4646
: $node->type;
4747

48+
if ($node instanceof Expression) {
49+
$varType = $this->nodeTypeResolver->getType($targetNode);
50+
$nativeType = $this->nodeTypeResolver->getNativeType($targetNode);
51+
52+
if (! $varType->equals($nativeType)) {
53+
return false;
54+
}
55+
}
56+
4857
if ($varTagValueNode->type instanceof GenericTypeNode) {
4958
return false;
5059
}

0 commit comments

Comments
 (0)