mirror of https://github.com/rectorphp/rector.git
Updated Rector to commit 7f73d653b9ceb059f9d05e010a7c6120f23c77ac
7f73d653b9
[Traverser] Use specific Stmt: Declare_ and Namespace_ for init namespace stmt_key index on StmtKeyNodeVisitor (#4111)
This commit is contained in:
parent
a97ef30b94
commit
1d6fa53888
|
@ -4,9 +4,9 @@ declare (strict_types=1);
|
||||||
namespace Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor;
|
namespace Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor;
|
||||||
|
|
||||||
use PhpParser\Node;
|
use PhpParser\Node;
|
||||||
use PhpParser\Node\Stmt;
|
|
||||||
use PhpParser\Node\Stmt\ClassLike;
|
use PhpParser\Node\Stmt\ClassLike;
|
||||||
use PhpParser\Node\Stmt\Declare_;
|
use PhpParser\Node\Stmt\Declare_;
|
||||||
|
use PhpParser\Node\Stmt\Namespace_;
|
||||||
use PhpParser\NodeVisitorAbstract;
|
use PhpParser\NodeVisitorAbstract;
|
||||||
use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface;
|
use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface;
|
||||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||||
|
@ -18,18 +18,22 @@ final class StmtKeyNodeVisitor extends NodeVisitorAbstract implements ScopeResol
|
||||||
*/
|
*/
|
||||||
public function beforeTraverse(array $nodes)
|
public function beforeTraverse(array $nodes)
|
||||||
{
|
{
|
||||||
$currentNode = \current($nodes);
|
if ($nodes === []) {
|
||||||
if (!$currentNode instanceof Stmt) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
$statementDepth = $currentNode->getAttribute(AttributeKey::STATEMENT_DEPTH);
|
if (!$nodes[0] instanceof Declare_ && !$nodes[0] instanceof Namespace_) {
|
||||||
if ($statementDepth > 0 || $statementDepth === null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// on target node or no other root stmt, eg: only namespace without declare, no need reindex
|
// on target node or no other root stmt, eg: only namespace without declare, no need to index
|
||||||
if (\count($nodes) === 1) {
|
if (\count($nodes) === 1) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
// ensure statement depth is 0 to avoid declare in deep statements
|
||||||
|
// eg: declare(ticks=1) @see https://www.php.net/manual/en/control-structures.declare.php#123674
|
||||||
|
$statementDepth = $nodes[0]->getAttribute(AttributeKey::STATEMENT_DEPTH);
|
||||||
|
if ($statementDepth > 0 || $statementDepth === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
foreach ($nodes as $key => $node) {
|
foreach ($nodes as $key => $node) {
|
||||||
$node->setAttribute(AttributeKey::STMT_KEY, $key);
|
$node->setAttribute(AttributeKey::STMT_KEY, $key);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const PACKAGE_VERSION = 'fe33aad6cbff85882e60ef2461e929d5b1957456';
|
public const PACKAGE_VERSION = '7f73d653b9ceb059f9d05e010a7c6120f23c77ac';
|
||||||
/**
|
/**
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const RELEASE_DATE = '2023-06-07 16:07:15';
|
public const RELEASE_DATE = '2023-06-08 09:04:34';
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInit4bea36e922988037890330b56507d2c2::getLoader();
|
return ComposerAutoloaderInit14157378de742e5984eef7e43b2391aa::getLoader();
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
class ComposerAutoloaderInit4bea36e922988037890330b56507d2c2
|
class ComposerAutoloaderInit14157378de742e5984eef7e43b2391aa
|
||||||
{
|
{
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
|
@ -22,17 +22,17 @@ class ComposerAutoloaderInit4bea36e922988037890330b56507d2c2
|
||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit4bea36e922988037890330b56507d2c2', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit14157378de742e5984eef7e43b2391aa', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit4bea36e922988037890330b56507d2c2', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit14157378de742e5984eef7e43b2391aa', 'loadClassLoader'));
|
||||||
|
|
||||||
require __DIR__ . '/autoload_static.php';
|
require __DIR__ . '/autoload_static.php';
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit4bea36e922988037890330b56507d2c2::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit14157378de742e5984eef7e43b2391aa::getInitializer($loader));
|
||||||
|
|
||||||
$loader->setClassMapAuthoritative(true);
|
$loader->setClassMapAuthoritative(true);
|
||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
$filesToLoad = \Composer\Autoload\ComposerStaticInit4bea36e922988037890330b56507d2c2::$files;
|
$filesToLoad = \Composer\Autoload\ComposerStaticInit14157378de742e5984eef7e43b2391aa::$files;
|
||||||
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
class ComposerStaticInit4bea36e922988037890330b56507d2c2
|
class ComposerStaticInit14157378de742e5984eef7e43b2391aa
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
|
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
|
||||||
|
@ -3031,9 +3031,9 @@ class ComposerStaticInit4bea36e922988037890330b56507d2c2
|
||||||
public static function getInitializer(ClassLoader $loader)
|
public static function getInitializer(ClassLoader $loader)
|
||||||
{
|
{
|
||||||
return \Closure::bind(function () use ($loader) {
|
return \Closure::bind(function () use ($loader) {
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInit4bea36e922988037890330b56507d2c2::$prefixLengthsPsr4;
|
$loader->prefixLengthsPsr4 = ComposerStaticInit14157378de742e5984eef7e43b2391aa::$prefixLengthsPsr4;
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInit4bea36e922988037890330b56507d2c2::$prefixDirsPsr4;
|
$loader->prefixDirsPsr4 = ComposerStaticInit14157378de742e5984eef7e43b2391aa::$prefixDirsPsr4;
|
||||||
$loader->classMap = ComposerStaticInit4bea36e922988037890330b56507d2c2::$classMap;
|
$loader->classMap = ComposerStaticInit14157378de742e5984eef7e43b2391aa::$classMap;
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
}, null, ClassLoader::class);
|
||||||
}
|
}
|
||||||
|
|
|
@ -871,17 +871,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan\/phpstan",
|
"name": "phpstan\/phpstan",
|
||||||
"version": "1.10.17",
|
"version": "1.10.18",
|
||||||
"version_normalized": "1.10.17.0",
|
"version_normalized": "1.10.18.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https:\/\/github.com\/phpstan\/phpstan.git",
|
"url": "https:\/\/github.com\/phpstan\/phpstan.git",
|
||||||
"reference": "8aca56455b40846865e4fac9d24b010a574dc362"
|
"reference": "52b6416c579663eebdd2f1d97df21971daf3b43f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/8aca56455b40846865e4fac9d24b010a574dc362",
|
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/52b6416c579663eebdd2f1d97df21971daf3b43f",
|
||||||
"reference": "8aca56455b40846865e4fac9d24b010a574dc362",
|
"reference": "52b6416c579663eebdd2f1d97df21971daf3b43f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -890,7 +890,7 @@
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpstan\/phpstan-shim": "*"
|
"phpstan\/phpstan-shim": "*"
|
||||||
},
|
},
|
||||||
"time": "2023-06-07T15:55:47+00:00",
|
"time": "2023-06-07T22:00:43+00:00",
|
||||||
"bin": [
|
"bin": [
|
||||||
"phpstan",
|
"phpstan",
|
||||||
"phpstan.phar"
|
"phpstan.phar"
|
||||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,16 +1,16 @@
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmSAqGsACgkQUcZzBf/C
|
iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmSA/fQACgkQUcZzBf/C
|
||||||
5cDCPw/+PAsJDfzyfAxZPEwmQaVZkQni62zrJiQc24kwe1HybP9ACSieryurRy5V
|
5cCwLA/+K91IrL7ggTr2A/gptErLu05s1wUZ0meZfNi+457tcWsspaI67gSiqxIH
|
||||||
erD+7RmaK6YPTcE9K510mf7aGlR5zge489BBDPiIdOa9YWZGO1Z6YnuC8whzpNMP
|
cypjMFL7gvwedB9dxJct+e0HmhYbkyjQJgqadOYHiqiG0LVdxRnd6X2ZIoargOUw
|
||||||
yJZYDZHK8SiWOxDgmfABYvhXMQ2SErRYaeilEaSx4ZWCGUAJP49DCZiY7Z3op4gl
|
V4J4+3Avdfp00kUMUoLh1cczSlriT8rrUA7wFahfIalgT2vw7ZxbjusbAgI7cA5Z
|
||||||
iOgbBbgrzNvM7E96B0JXoTYCSYslrHim4cG77nbgmte28XC/5fzGx0eE8WyYybF0
|
P6T933/Q+mSUd2HN1iZ/kyNxtGhyqb3ZiuW+Cs0lnz2ojhvg79lsmDrEF1LRyRg7
|
||||||
ro3xfps8DFQtvxuOBJvJi5k5ZP1Ltb8zjBbH/ZWuS6Nz3x7Jtr9tGlJnHI9txkRd
|
Nsn1paL4Uivo8lTheLOVtjLS1G/4Rk3ZJjyuJDnuyI3BMwpD1cLizW+6bs9ydHCx
|
||||||
7Akh0i1B8CpacqA/5BPwKKsK/NlEKv7QmtBHpe5Uye+uVH8ak6LRCSYVZZXxFn8J
|
pbSticFoEbaSqnKeXOrqS9ci8QnC8zHVYdYi+yBI76Cf9LvORd90TC+sApxm6vC/
|
||||||
0l1qn9Erf5iYNE5ljoPIbm9mA4w99oUrYzY+0d6ixCjk5RzQK0Oo6k3phr5j/PdS
|
66jOuHxrkX85enRgS1e7pxSJjDl6XdW+hdAAgp0BAI48Ec++X4EE5IY5+N465c4K
|
||||||
Gpr8T8Rzx1bvN4D0qm7r+Bw2krWeSxFYkwIEGLS/1oajf7pMIAjuR2JnvnMW4BZP
|
TJ/xjco+e4TSG7RMCaq+USuSXF1vM+ZDKU+TtmkH8oH8gwAYLvd2Kpki0DCMrt3q
|
||||||
MhqPS2A2gmhjkpCdpYVe5a/kD+9WucMbVUTXN6GZmLWGKi/aXF1Q6CNXkazf6pHB
|
rxrKkbzFt6q8rNhUPTHNxQkMhpkzd1yTDEpQVs1XjVxwpYDgH2NdcaSblid71t8v
|
||||||
aCAoxEBmdwJb4n58oos9VTWVdrm/qddw1O/MCjgiJQGrV8P9zzqO5xcpMM+AAnsE
|
jZCtcgl4AwnONCR4zVckGcz6c98dpX39T/Ru560GUdJeXE3YL4Y3HXTyvDUsCXZB
|
||||||
L2M0Arr07iFyzHI+0yGucQ2N9Ys52w4nxsCxo+cK2ItgoOBoM20=
|
+ovYyPKsxYXJu2XcT26Am8nXPLen2bZ3O4DECRlB4C7RVvWd55g=
|
||||||
=ZVYy
|
=1LOo
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|
Loading…
Reference in New Issue