mirror of
https://github.com/rectorphp/rector.git
synced 2025-03-24 09:19:47 +01:00
skip same-namespace-short name in ImportFullyQualifiedNamesRect… (#1829)
skip same-namespace-short name in ImportFullyQualifiedNamesRector
This commit is contained in:
commit
7c0eec4b6c
@ -5,10 +5,10 @@ namespace Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRe
|
||||
class ImportParamDoc
|
||||
{
|
||||
/**
|
||||
* @param \Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName $alreadyClassName
|
||||
* @return \Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName
|
||||
* @param \Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\NormalParamClass $alreadyClassName
|
||||
* @return \Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\NormalParamClass
|
||||
*/
|
||||
public function create(\Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName $alreadyClassName)
|
||||
public function create(\Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\NormalParamClass $alreadyClassName)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -19,14 +19,14 @@ class ImportParamDoc
|
||||
|
||||
namespace Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Fixture;
|
||||
|
||||
use Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName;
|
||||
use Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\NormalParamClass;
|
||||
class ImportParamDoc
|
||||
{
|
||||
/**
|
||||
* @param AlreadyClassName $alreadyClassName
|
||||
* @return AlreadyClassName
|
||||
* @param NormalParamClass $alreadyClassName
|
||||
* @return NormalParamClass
|
||||
*/
|
||||
public function create(AlreadyClassName $alreadyClassName)
|
||||
public function create(NormalParamClass $alreadyClassName)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ use Rector\CodingStyle\Tests\Rector\Namespace_;
|
||||
class ImportReturnDoc
|
||||
{
|
||||
/**
|
||||
* @return Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName
|
||||
* @return Namespace_\ImportFullyQualifiedNamesRector\Source\NormalReturnClass
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
@ -20,13 +20,13 @@ class ImportReturnDoc
|
||||
|
||||
namespace Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Fixture;
|
||||
|
||||
use Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\AlreadyClassName;
|
||||
use Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source\NormalReturnClass;
|
||||
use Rector\CodingStyle\Tests\Rector\Namespace_;
|
||||
|
||||
class ImportReturnDoc
|
||||
{
|
||||
/**
|
||||
* @return AlreadyClassName
|
||||
* @return NormalReturnClass
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
|
@ -0,0 +1,8 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source;
|
||||
|
||||
final class NormalParamClass
|
||||
{
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace Rector\CodingStyle\Tests\Rector\Namespace_\ImportFullyQualifiedNamesRector\Source;
|
||||
|
||||
final class NormalReturnClass
|
||||
{
|
||||
|
||||
}
|
@ -35,6 +35,7 @@ use Rector\BetterPhpDocParser\Printer\PhpDocInfoPrinter;
|
||||
use Rector\CodingStyle\Application\UseAddingCommander;
|
||||
use Rector\Exception\ShouldNotHappenException;
|
||||
use Rector\NodeTypeResolver\Exception\MissingTagException;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\Php\ParamTypeInfo;
|
||||
use Rector\NodeTypeResolver\Php\ReturnTypeInfo;
|
||||
use Rector\NodeTypeResolver\Php\VarTypeInfo;
|
||||
@ -680,6 +681,14 @@ final class DocBlockManipulator
|
||||
string $shortName,
|
||||
string $fullyQualifiedName
|
||||
): AttributeAwareNodeInterface {
|
||||
// the name is already in the same namespace implicitly
|
||||
$namespaceName = $node->getAttribute(AttributeKey::NAMESPACE_NAME);
|
||||
|
||||
// the class in the same namespace as differnt file can se used in this code, the short names would colide → skip
|
||||
if (class_exists($namespaceName . '\\' . $shortName)) {
|
||||
return $attributeAwareNode;
|
||||
}
|
||||
|
||||
if ($this->useAddingCommander->isShortImported($node, $fullyQualifiedName)) {
|
||||
if ($this->useAddingCommander->isImportShortable($node, $fullyQualifiedName)) {
|
||||
$attributeAwareNode->name = $shortName;
|
||||
|
Loading…
x
Reference in New Issue
Block a user