diff --git a/.travis.yml b/.travis.yml index bed0e431da0..a7753f81815 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,10 +15,10 @@ script: # run tests - vendor/bin/phpunit $PHPUNIT_FLAGS # check coding standard (defined in composer.json "scripts" section) - # if this fails, run "composer fs" to fix all fixable issues + # if this fails, run "composer fix-cs" to fix all fixable issues - composer check-cs # check with phpstan (defined in composer.json "scripts" section) - # - composer phpstan + - composer phpstan after_script: # upload coverage.xml file to Coveralls to analyze it diff --git a/composer.json b/composer.json index ebb61f3948e..9416cdd9aba 100644 --- a/composer.json +++ b/composer.json @@ -11,13 +11,13 @@ "symfony/console": "^3.3", "symfony/dependency-injection": "^3.3", "nikic/php-parser": "4.0.x-dev as 3.0.2", - "nette/utils": "^2.4" + "nette/utils": "^2.4", + "phpstan/phpstan": "^0.8" }, "require-dev": { "phpunit/phpunit": "^6.2", "tracy/tracy": "^2.4", - "symplify/easy-coding-standard": "^2.2", - "phpstan/phpstan": "^0.8" + "symplify/easy-coding-standard": "^2.2" }, "autoload": { "psr-4": { diff --git a/easy-coding-standard.neon b/easy-coding-standard.neon index 29f9f9c937a..86e191848a8 100644 --- a/easy-coding-standard.neon +++ b/easy-coding-standard.neon @@ -1,5 +1,6 @@ includes: - vendor/symplify/easy-coding-standard/config/symfony-checkers.neon + - vendor/symplify/easy-coding-standard/config/symfony-risky-checkers.neon - vendor/symplify/easy-coding-standard/config/php70-checkers.neon - vendor/symplify/easy-coding-standard/config/php71-checkers.neon - vendor/symplify/easy-coding-standard/config/symplify-checkers.neon diff --git a/src/NodeTraverser/NodeTraverserFactory.php b/src/NodeTraverser/NodeTraverserFactory.php index 6c3b90772a9..b1450ff5a81 100644 --- a/src/NodeTraverser/NodeTraverserFactory.php +++ b/src/NodeTraverser/NodeTraverserFactory.php @@ -36,7 +36,7 @@ final class NodeTraverserFactory } foreach ($this->nodeVisitors as $nodeVisitor) { - if (in_array(get_class($nodeVisitor), $this->priorityNodeVisitorClasses, true)) { + if ($this->isPriorityNodeVisitor($nodeVisitor)) { continue; } @@ -45,4 +45,11 @@ final class NodeTraverserFactory return $nodeTraverser; } + + private function isPriorityNodeVisitor(NodeVisitor $nodeVisitor): bool + { + $nodeVisitorClass = get_class($nodeVisitor); + + return in_array($nodeVisitorClass, $this->priorityNodeVisitorClasses, true); + } } diff --git a/src/Rector/Contrib/Nette/HtmlAddMethodRector.php b/src/Rector/Contrib/Nette/HtmlAddMethodRector.php index 449918ba30f..ce6a28f1634 100644 --- a/src/Rector/Contrib/Nette/HtmlAddMethodRector.php +++ b/src/Rector/Contrib/Nette/HtmlAddMethodRector.php @@ -6,14 +6,20 @@ use PhpParser\Node; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Identifier; use Rector\Deprecation\SetNames; +use Rector\NodeTraverser\TokenSwitcher; use Rector\Rector\AbstractRector; final class HtmlAddMethodRector extends AbstractRector { /** - * @var Node + * @var TokenSwitcher */ - private $previousNode; + private $tokenSwitcher; + + public function __construct(TokenSwitcher $tokenSwitcher) + { + $this->tokenSwitcher = $tokenSwitcher; + } public function getSetName(): string { @@ -55,4 +61,12 @@ final class HtmlAddMethodRector extends AbstractRector return $node; } + + /** + * @param Node[] $nodes + */ + public function afterTraverse(array $nodes): void + { + $this->tokenSwitcher->enable(); + } }