diff --git a/composer.json b/composer.json index ea991db4..c1d333fd 100644 --- a/composer.json +++ b/composer.json @@ -8,13 +8,13 @@ ], "bin": ["bin/svc"], "require": { - "php": "~7.1.3||~7.2.0||~7.3.0||~7.4.0", + "php": "~7.1.3||~7.2.0||~7.3.0", "phpstan/phpdoc-parser": "^0.3.5", "symfony/console": "~4.1.0||~4.4.0", - "tomzx/php-semver-checker": "^0.14.0", + "tomzx/php-semver-checker": "^0.13.0", "wikimedia/less.php": "~1.8.0", "zendframework/zend-stdlib": "^3.2.1", - "nikic/php-parser": "^4.4" + "nikic/php-parser": "^3.1" }, "require-dev": { "phpunit/phpunit": "^6.5.0", diff --git a/composer.lock b/composer.lock index ee4731cd..647195a4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,33 +4,32 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f3225ee314196beeeee271d15a904b04", + "content-hash": "97c29ab87137d8c0e984e439871455d0", "packages": [ { "name": "hassankhan/config", - "version": "v2.1.0", + "version": "0.11.2", "source": { "type": "git", "url": "https://github.com/hassankhan/config.git", - "reference": "16fa4d3320ac9bb611dda0c8ea980edb58d227c9" + "reference": "7fbc236c32dc6cc53a7b00992a2739cf8b41c085" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hassankhan/config/zipball/16fa4d3320ac9bb611dda0c8ea980edb58d227c9", - "reference": "16fa4d3320ac9bb611dda0c8ea980edb58d227c9", + "url": "https://api.github.com/repos/hassankhan/config/zipball/7fbc236c32dc6cc53a7b00992a2739cf8b41c085", + "reference": "7fbc236c32dc6cc53a7b00992a2739cf8b41c085", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "~4.8 || ~5.7 || ~6.5 || ~7.5", + "phpunit/phpunit": "~4.0", "scrutinizer/ocular": "~1.1", - "squizlabs/php_codesniffer": "~2.2", - "symfony/yaml": "~3.4" + "squizlabs/php_codesniffer": "~2.2" }, "suggest": { - "symfony/yaml": "~3.4" + "symfony/yaml": "~2.5" }, "type": "library", "autoload": { @@ -62,29 +61,28 @@ "yaml", "yml" ], - "time": "2019-09-01T15:51:42+00:00" + "time": "2017-11-07T22:49:43+00:00" }, { "name": "nikic/php-parser", - "version": "v4.4.0", + "version": "v3.1.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120" + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", - "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=5.5" }, "require-dev": { - "ircmaxell/php-yacc": "0.0.5", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" + "phpunit/phpunit": "~4.0|~5.0" }, "bin": [ "bin/php-parse" @@ -92,7 +90,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -114,7 +112,7 @@ "parser", "php" ], - "time": "2020-04-10T16:34:50+00:00" + "time": "2018-02-28T20:30:58+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -214,16 +212,16 @@ }, { "name": "symfony/console", - "version": "v4.4.7", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" + "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "url": "https://api.github.com/repos/symfony/console/zipball/4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", + "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", "shasum": "" }, "require": { @@ -286,20 +284,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-03-30T11:41:10+00:00" + "time": "2020-02-24T13:10:00+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.15.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", "shasum": "" }, "require": { @@ -311,7 +309,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -344,20 +342,20 @@ "polyfill", "portable" ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.15.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", "shasum": "" }, "require": { @@ -369,7 +367,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -403,20 +401,20 @@ "portable", "shim" ], - "time": "2020-03-09T19:04:49+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.15.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", "shasum": "" }, "require": { @@ -425,7 +423,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -461,24 +459,24 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.0.1", + "version": "v1.1.8", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "144c5e51266b281231e947b51223ba14acf1a749" + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", - "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": "^7.1.3", "psr/container": "^1.0" }, "suggest": { @@ -487,7 +485,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -519,20 +517,20 @@ "interoperability", "standards" ], - "time": "2019-11-18T17:27:11+00:00" + "time": "2019-10-14T12:27:06+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.7", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ef166890d821518106da3560086bfcbeb4fadfec" + "reference": "94d005c176db2080e98825d98e01e8b311a97a88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ef166890d821518106da3560086bfcbeb4fadfec", - "reference": "ef166890d821518106da3560086bfcbeb4fadfec", + "url": "https://api.github.com/repos/symfony/yaml/zipball/94d005c176db2080e98825d98e01e8b311a97a88", + "reference": "94d005c176db2080e98825d98e01e8b311a97a88", "shasum": "" }, "require": { @@ -578,7 +576,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2020-03-30T11:41:10+00:00" + "time": "2020-02-03T10:46:43+00:00" }, { "name": "tomzx/finder", @@ -631,29 +629,29 @@ }, { "name": "tomzx/php-semver-checker", - "version": "v0.14.0", + "version": "v0.13.0", "source": { "type": "git", "url": "https://github.com/tomzx/php-semver-checker.git", - "reference": "4496ada7e8370e485054ffddc4c563fe74684ed1" + "reference": "d26fbefeb8405f4dc6ae7fb3a003af3b5b5f948a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tomzx/php-semver-checker/zipball/4496ada7e8370e485054ffddc4c563fe74684ed1", - "reference": "4496ada7e8370e485054ffddc4c563fe74684ed1", + "url": "https://api.github.com/repos/tomzx/php-semver-checker/zipball/d26fbefeb8405f4dc6ae7fb3a003af3b5b5f948a", + "reference": "d26fbefeb8405f4dc6ae7fb3a003af3b5b5f948a", "shasum": "" }, "require": { - "hassankhan/config": "^2.0", - "nikic/php-parser": "^4.0", - "php": ">=7.2.29", - "symfony/console": "^4.0", - "symfony/yaml": "^4.0", + "hassankhan/config": "^0.11", + "nikic/php-parser": "^3.1", + "php": ">=5.6.0", + "symfony/console": "^2.7|^3.0|^4.0", + "symfony/yaml": "^2.7|^3.0|^4.0", "tomzx/finder": "^0.1" }, "require-dev": { "mockery/mockery": "^1.0", - "phpunit/phpunit": "^7.0|^8.0" + "phpunit/phpunit": "^4.0|^5.0" }, "bin": [ "bin/php-semver-checker" @@ -661,7 +659,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.14-dev" + "dev-master": "0.13-dev" } }, "autoload": { @@ -687,27 +685,27 @@ "semantic versioning", "semver" ], - "time": "2020-04-17T04:34:42+00:00" + "time": "2019-03-09T19:02:35+00:00" }, { "name": "wikimedia/less.php", - "version": "1.8.2", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/wikimedia/less.php.git", - "reference": "e238ad228d74b6ffd38209c799b34e9826909266" + "reference": "f0f7768f6fa8a9d2ac6a0274f6f477c72159bf9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/less.php/zipball/e238ad228d74b6ffd38209c799b34e9826909266", - "reference": "e238ad228d74b6ffd38209c799b34e9826909266", + "url": "https://api.github.com/repos/wikimedia/less.php/zipball/f0f7768f6fa8a9d2ac6a0274f6f477c72159bf9b", + "reference": "f0f7768f6fa8a9d2ac6a0274f6f477c72159bf9b", "shasum": "" }, "require": { - "php": ">=7.2.9" + "php": ">=5.3" }, "require-dev": { - "phpunit/phpunit": "7.5.14" + "phpunit/phpunit": "~4.8.24" }, "bin": [ "bin/lessc" @@ -726,10 +724,6 @@ "Apache-2.0" ], "authors": [ - { - "name": "Josh Schmidt", - "homepage": "https://github.com/oyejorge" - }, { "name": "Matt Agar", "homepage": "https://github.com/agar" @@ -737,6 +731,10 @@ { "name": "Martin Jantošovič", "homepage": "https://github.com/Mordred" + }, + { + "name": "Josh Schmidt", + "homepage": "https://github.com/oyejorge" } ], "description": "PHP port of the Javascript version of LESS http://lesscss.org (Originally maintained by Josh Schmidt)", @@ -748,7 +746,7 @@ "php", "stylesheet" ], - "time": "2019-11-06T18:30:11+00:00" + "time": "2019-01-19T01:01:33+00:00" }, { "name": "zendframework/zend-stdlib", @@ -1059,38 +1057,41 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.1.0", + "version": "4.3.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", "shasum": "" }, "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", + "webmozart/assert": "^1.0" }, "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" + "doctrine/instantiator": "^1.0.5", + "mockery/mockery": "^1.0", + "phpdocumentor/type-resolver": "0.4.*", + "phpunit/phpunit": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "phpDocumentor\\Reflection\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -1101,36 +1102,33 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-22T12:28:44+00:00" + "time": "2019-12-28T18:55:12+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.1.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "shasum": "" }, "require": { - "php": "^7.2", + "php": "^7.1", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.2", - "mockery/mockery": "~1" + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -1154,7 +1152,7 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-02-18T18:59:58+00:00" + "time": "2019-08-22T18:11:29+00:00" }, { "name": "phpspec/prophecy", @@ -2173,16 +2171,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.5", + "version": "3.5.4", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" + "reference": "dceec07328401de6211037abbb18bda423677e26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", + "reference": "dceec07328401de6211037abbb18bda423677e26", "shasum": "" }, "require": { @@ -2220,7 +2218,7 @@ "phpcs", "standards" ], - "time": "2020-04-17T01:09:41+00:00" + "time": "2020-01-30T22:20:29+00:00" }, { "name": "theseer/tokenizer", @@ -2317,7 +2315,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~7.1.3||~7.2.0||~7.3.0||~7.4.0" + "php": "~7.1.3||~7.2.0||~7.3.0" }, "platform-dev": [] } diff --git a/src/Analyzer/ClassAnalyzer.php b/src/Analyzer/ClassAnalyzer.php index c74dfa75..51b4b8a2 100644 --- a/src/Analyzer/ClassAnalyzer.php +++ b/src/Analyzer/ClassAnalyzer.php @@ -34,7 +34,7 @@ class ClassAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/ClassConstantAnalyzer.php b/src/Analyzer/ClassConstantAnalyzer.php index 6d2bd9a8..94f4c097 100644 --- a/src/Analyzer/ClassConstantAnalyzer.php +++ b/src/Analyzer/ClassConstantAnalyzer.php @@ -39,7 +39,7 @@ class ClassConstantAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($constant) { - return $constant->consts[0]->name->toString(); + return $constant->consts[0]->name; } /** diff --git a/src/Analyzer/ClassExtendsAnalyzer.php b/src/Analyzer/ClassExtendsAnalyzer.php index 110c6513..daa95506 100644 --- a/src/Analyzer/ClassExtendsAnalyzer.php +++ b/src/Analyzer/ClassExtendsAnalyzer.php @@ -31,7 +31,7 @@ class ClassExtendsAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/ClassImplementsAnalyzer.php b/src/Analyzer/ClassImplementsAnalyzer.php index 8bdc1fa8..307516d0 100644 --- a/src/Analyzer/ClassImplementsAnalyzer.php +++ b/src/Analyzer/ClassImplementsAnalyzer.php @@ -32,7 +32,7 @@ class ClassImplementsAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/ClassMethodAnalyzer.php b/src/Analyzer/ClassMethodAnalyzer.php index 7fdc0a7a..f3c04a5a 100644 --- a/src/Analyzer/ClassMethodAnalyzer.php +++ b/src/Analyzer/ClassMethodAnalyzer.php @@ -90,7 +90,7 @@ class ClassMethodAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($method) { - return $method->name->toString(); + return $method->name; } /** @@ -125,7 +125,7 @@ protected function reportAddedNode($report, $fileAfter, $classAfter, $methodAfte foreach ($class->getExtends() as $entity) { $methods = $entity->getMethodList(); // checks if the method is already exiting in parent class - if (isset($methods[$methodAfter->name->toString()])) { + if (isset($methods[$methodAfter->name])) { $report->add( $this->context, new ClassMethodOverwriteAdded($this->context, $fileAfter, $classAfter, $methodAfter) @@ -252,7 +252,7 @@ protected function reportChanged($report, $contextBefore, $contextAfter, $method if (!$signatureChanged && $beforeCount > $afterCount) { $remainingBefore = array_slice($paramsBefore, $minCount); if ($sameVarNames) { - if (strtolower($methodBefore->name->toString()) === "__construct") { + if (strtolower($methodBefore->name) === "__construct") { $data = new ClassConstructorLastParameterRemoved( $this->context, $this->fileAfter, @@ -283,7 +283,7 @@ protected function reportChanged($report, $contextBefore, $contextAfter, $method if (!$signatureChanged && $beforeCount < $afterCount) { $remainingAfter = array_slice($paramsAfter, $minCount); - if (strtolower($methodBefore->name->toString()) === '__construct') { + if (strtolower($methodBefore->name) === '__construct') { $data = $this->analyzeRemainingConstructorParams($contextAfter, $methodAfter, $remainingAfter); } else { $data = $this->analyzeRemainingMethodParams($contextAfter, $methodAfter, $remainingAfter); diff --git a/src/Analyzer/ClassMethodExceptionAnalyzer.php b/src/Analyzer/ClassMethodExceptionAnalyzer.php index 8fe08d25..cf93ff4f 100644 --- a/src/Analyzer/ClassMethodExceptionAnalyzer.php +++ b/src/Analyzer/ClassMethodExceptionAnalyzer.php @@ -48,7 +48,7 @@ class ClassMethodExceptionAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/ClassTraitAnalyzer.php b/src/Analyzer/ClassTraitAnalyzer.php index ce008afe..89d119ab 100644 --- a/src/Analyzer/ClassTraitAnalyzer.php +++ b/src/Analyzer/ClassTraitAnalyzer.php @@ -32,7 +32,7 @@ class ClassTraitAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/InterfaceAnalyzer.php b/src/Analyzer/InterfaceAnalyzer.php index 718822c8..165ef39f 100644 --- a/src/Analyzer/InterfaceAnalyzer.php +++ b/src/Analyzer/InterfaceAnalyzer.php @@ -34,7 +34,7 @@ class InterfaceAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/InterfaceExtendsAnalyzer.php b/src/Analyzer/InterfaceExtendsAnalyzer.php index 206d9381..2ba6a946 100644 --- a/src/Analyzer/InterfaceExtendsAnalyzer.php +++ b/src/Analyzer/InterfaceExtendsAnalyzer.php @@ -32,7 +32,7 @@ class InterfaceExtendsAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/Analyzer/MethodDocBlockAnalyzer.php b/src/Analyzer/MethodDocBlockAnalyzer.php index 58b599dc..a24d0155 100644 --- a/src/Analyzer/MethodDocBlockAnalyzer.php +++ b/src/Analyzer/MethodDocBlockAnalyzer.php @@ -15,8 +15,6 @@ use Magento\SemanticVersionChecker\Operation\DocblockAnnotations\ClassMethodReturnTypeMovedFromInlineToDoc; use Magento\SemanticVersionChecker\Operation\DocblockAnnotations\ClassMethodVariableTypeMovedFromDocToInline; use Magento\SemanticVersionChecker\Operation\DocblockAnnotations\ClassMethodVariableTypeMovedFromInlineToDoc; -use PhpParser\Node\Identifier; -use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Param; @@ -121,8 +119,18 @@ public function analyzeTypeHintMovementsBetweenDocAndMethod( $docParamTypesRemoved = array_diff($docParamTypesBefore, $docParamTypesAfter) ?? ['']; //check return type - $inlineReturnTypeBefore[] = $this->getTypeName($methodBefore->returnType); - $inlineReturnTypeAfter[] = $this->getTypeName($methodAfter->returnType); + $inlineReturnTypeBefore[] = $methodBefore->returnType ?? ''; + if (is_object($inlineReturnTypeBefore[0]) && property_exists($inlineReturnTypeBefore[0], 'parts')) { + $inlineReturnTypeBefore[0] = end($inlineReturnTypeBefore[0]->parts); + } elseif (is_object($inlineReturnTypeBefore[0]) && property_exists($inlineReturnTypeBefore[0], 'type')) { + $inlineReturnTypeBefore[0] = $inlineReturnTypeBefore[0]->type; + } + $inlineReturnTypeAfter[] = $methodAfter->returnType ?? ''; + if (is_object($inlineReturnTypeAfter[0]) && property_exists($inlineReturnTypeAfter[0], 'parts')) { + $inlineReturnTypeAfter[0] = end($inlineReturnTypeAfter[0]->parts); + } elseif (is_object($inlineReturnTypeAfter[0]) && property_exists($inlineReturnTypeAfter[0], 'type')) { + $inlineReturnTypeAfter[0] = $inlineReturnTypeAfter[0]->type; + } $docReturnTypeBefore = $this->getMethodDocDeclarationByTag($methodBefore, self::DOC_RETURN_TAG) ?? ['']; $docReturnTypeAfter = $this->getMethodDocDeclarationByTag($methodAfter, self::DOC_RETURN_TAG) ?? ['']; $returnTypeMovedFromInlineToDoc = false; @@ -199,35 +207,15 @@ private function getParamTypes(array $params): array $formattedParams = []; /** @var Param $param */ foreach ($params as $param) { - $paramType = $this->getTypeName($param->type); - if (!empty($paramType)) { - $formattedParams['$' . $param->var->name] = $paramType; + $paramType = $param->type; + if (!empty($paramType) && is_object($paramType)) { + $paramParts = property_exists($paramType, 'parts') ? $paramType->parts : []; + $formattedParams['$' . $param->name] = end($paramParts); + } elseif (!empty($paramType)) { + $formattedParams['$' . $param->name] = $paramType; } } return $formattedParams ?? ['']; } - - /** - * Resolve given type to name - * - * @param FullyQualified|Identifier|null $type - * - * @return string - */ - private function getTypeName($type) - { - $typeClass = (is_null($type)) ? '' : get_class($type); - switch ($typeClass) { - case FullyQualified::class: - $returnType = $type->getLast(); - break; - case Identifier::class: - $returnType = $type->toString(); - break; - default: - $returnType = ''; - } - return $returnType; - } } diff --git a/src/Analyzer/PropertyAnalyzer.php b/src/Analyzer/PropertyAnalyzer.php index 4baba484..e68a2a4d 100644 --- a/src/Analyzer/PropertyAnalyzer.php +++ b/src/Analyzer/PropertyAnalyzer.php @@ -38,7 +38,7 @@ class PropertyAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($property) { - return $property->props[0]->name->toString(); + return $property->props[0]->name; } /** diff --git a/src/Analyzer/TraitAnalyzer.php b/src/Analyzer/TraitAnalyzer.php index d21bb0ac..084996a7 100644 --- a/src/Analyzer/TraitAnalyzer.php +++ b/src/Analyzer/TraitAnalyzer.php @@ -29,7 +29,7 @@ class TraitAnalyzer extends AbstractCodeAnalyzer */ protected function getNodeName($node) { - return $node->name->toString(); + return $node->name; } /** diff --git a/src/ClassHierarchy/Entity.php b/src/ClassHierarchy/Entity.php index 43908545..563bf236 100644 --- a/src/ClassHierarchy/Entity.php +++ b/src/ClassHierarchy/Entity.php @@ -383,7 +383,7 @@ public function addMethod(ClassMethod $method): void { //remove stmts from Method $method->stmts = []; - $this->methodList[$method->name->toString()] = $method; + $this->methodList[$method->name] = $method; } /** diff --git a/src/Comparator/Signature.php b/src/Comparator/Signature.php index b65131c9..7170db7c 100644 --- a/src/Comparator/Signature.php +++ b/src/Comparator/Signature.php @@ -55,7 +55,7 @@ public static function isOptionalParams(array $params) public static function isObjectParams(array $params) { foreach ($params as $param) { - if ($param->type instanceof \PhpParser\Node\Name\FullyQualified) { + if (is_object($param->type)) { return true; } } diff --git a/src/Helper/ClassParser.php b/src/Helper/ClassParser.php index b115ba26..426b12d1 100644 --- a/src/Helper/ClassParser.php +++ b/src/Helper/ClassParser.php @@ -96,7 +96,7 @@ public function getParentFullClassName() } foreach ($nodeTree->stmts as $stmt) { - if ($stmt instanceof Use_ && $stmt->uses[0]->getAlias()->toString() === $extendedClass) { + if ($stmt instanceof Use_ && $stmt->uses[0]->alias === $extendedClass) { return implode("\\", $stmt->uses[0]->name->parts); } } @@ -262,7 +262,7 @@ public function getImplementedInterfacesNames() $namespace = $nodeTree->name->toString(); foreach ($nodeTree->stmts as $stmt) { if ($stmt instanceof Use_) { - $uses[$stmt->uses[0]->getAlias()->toString()] = $stmt->uses[0]; + $uses[$stmt->uses[0]->alias] = $stmt->uses[0]; } } @@ -310,9 +310,9 @@ public function getFullyQualifiedName(string $alias): string //is the class, interface, trait defined in the very same file? if ( $stmt instanceof ClassLike - && $stmt->name->toString() === $alias + && $stmt->name === $alias ) { - return $nodeTree->name->toString() . '\\' . $stmt->name->toString(); + return $nodeTree->name->toString() . '\\' . $stmt->name; } //is the class being imported? @@ -320,7 +320,7 @@ public function getFullyQualifiedName(string $alias): string foreach ($stmt->uses as $useUseStmnt) { $fullyQualifiedName = $useUseStmnt->name->toString(); - if ($useUseStmnt->getAlias()->toString() === $alias || $fullyQualifiedName === $alias) { + if ($useUseStmnt->alias === $alias || $fullyQualifiedName === $alias) { return $fullyQualifiedName; } } diff --git a/src/Node/Statement/ClassConstant.php b/src/Node/Statement/ClassConstant.php index 30a7a13c..a3e49538 100644 --- a/src/Node/Statement/ClassConstant.php +++ b/src/Node/Statement/ClassConstant.php @@ -23,11 +23,11 @@ class ClassConstant extends BaseClassConstant */ public static function getFullyQualifiedName(Stmt $context, BaseClassConstant $constant) { - $fqcn = $context->name->toString(); + $fqcn = $context->name; if ($context->namespacedName) { $fqcn = $context->namespacedName->toString(); } - return $fqcn . '::' . $constant->consts[0]->name->toString(); + return $fqcn . '::' . $constant->consts[0]->name; } } diff --git a/tests/Unit/Helper/ClassParserTest.php b/tests/Unit/Helper/ClassParserTest.php deleted file mode 100644 index 2906b8c3..00000000 --- a/tests/Unit/Helper/ClassParserTest.php +++ /dev/null @@ -1,46 +0,0 @@ -assertEquals('Test\VcsA\ClassA', $parser->getParentFullClassName()); - } - - public function testExtendsFull() - { - $path = __DIR__ . '/_files/ClassExtendFull.php'; - $parser = new ClassParser($path); - $this->assertEquals('Test\VcsA\ClassA', $parser->getParentFullClassName()); - } - - public function testImplementsAlias() - { - $path = __DIR__ . '/_files/ClassExtendAlias.php'; - $parser = new ClassParser($path); - $result = $parser->getImplementedInterfacesNames(); - $this->assertCount(1, $result); - $this->assertArraySubset(['Test\VcsA\A\InterfaceA'], $parser->getImplementedInterfacesNames()); - } - - public function testImplementsFull() - { - $path = __DIR__ . '/_files/ClassExtendFull.php'; - $parser = new ClassParser($path); - $result = $parser->getImplementedInterfacesNames(); - $this->assertCount(1, $result); - $this->assertArraySubset(['Test\VcsA\A\InterfaceA'], $parser->getImplementedInterfacesNames()); - } -} diff --git a/tests/Unit/Helper/_files/ClassA.php b/tests/Unit/Helper/_files/ClassA.php deleted file mode 100644 index e7451c0c..00000000 --- a/tests/Unit/Helper/_files/ClassA.php +++ /dev/null @@ -1,8 +0,0 @@ -