diff --git a/src/Rules/Methods/CallToMethodStatementWithNoDiscardRule.php b/src/Rules/Methods/CallToMethodStatementWithNoDiscardRule.php index 53755ee620..ab8bb5ce8f 100644 --- a/src/Rules/Methods/CallToMethodStatementWithNoDiscardRule.php +++ b/src/Rules/Methods/CallToMethodStatementWithNoDiscardRule.php @@ -59,6 +59,9 @@ public function processNode(Node $node, Scope $scope): array ) { return []; } + if (!$methodCall->name instanceof Node\Identifier) { + return []; + } if ($methodCall->isFirstClassCallable()) { return []; @@ -68,11 +71,7 @@ public function processNode(Node $node, Scope $scope): array return []; } - if (!$methodCall->name instanceof Node\Identifier) { - return []; - } $methodName = $methodCall->name->toString(); - $typeResult = $this->ruleLevelHelper->findTypeToCheck( $scope, NullsafeOperatorHelper::getNullsafeShortcircuitedExprRespectingScope($scope, $methodCall->var), diff --git a/src/Rules/Methods/CallToMethodStatementWithoutSideEffectsRule.php b/src/Rules/Methods/CallToMethodStatementWithoutSideEffectsRule.php index 3a064dc646..22ce22ec39 100644 --- a/src/Rules/Methods/CallToMethodStatementWithoutSideEffectsRule.php +++ b/src/Rules/Methods/CallToMethodStatementWithoutSideEffectsRule.php @@ -38,17 +38,21 @@ public function processNode(Node $node, Scope $scope): array if ($methodCall instanceof Node\Expr\BinaryOp\Pipe) { $methodCall = $methodCall->right; } + if ($methodCall instanceof Node\Expr\NullsafeMethodCall) { + if (!$methodCall->name instanceof Node\Identifier) { + return []; + } $scope = $scope->filterByTruthyValue(new Node\Expr\BinaryOp\NotIdentical($methodCall->var, new Node\Expr\ConstFetch(new Node\Name('null')))); - } elseif (!$methodCall instanceof Node\Expr\MethodCall) { + } elseif ($methodCall instanceof Node\Expr\MethodCall) { + if (!$methodCall->name instanceof Node\Identifier) { + return []; + } + } else { return []; } - if (!$methodCall->name instanceof Node\Identifier) { - return []; - } $methodName = $methodCall->name->toString(); - $typeResult = $this->ruleLevelHelper->findTypeToCheck( $scope, NullsafeOperatorHelper::getNullsafeShortcircuitedExprRespectingScope($scope, $methodCall->var), diff --git a/src/Rules/Methods/CallToStaticMethodStatementWithNoDiscardRule.php b/src/Rules/Methods/CallToStaticMethodStatementWithNoDiscardRule.php index a1fa42d31e..0fd24fb249 100644 --- a/src/Rules/Methods/CallToStaticMethodStatementWithNoDiscardRule.php +++ b/src/Rules/Methods/CallToStaticMethodStatementWithNoDiscardRule.php @@ -60,16 +60,15 @@ public function processNode(Node $node, Scope $scope): array if (!$methodCall instanceof Node\Expr\StaticCall) { return []; } - - if ($methodCall->isFirstClassCallable()) { + if (!$methodCall->name instanceof Node\Identifier) { return []; } - if (!$this->phpVersion->supportsNoDiscardAttribute()) { + if ($methodCall->isFirstClassCallable()) { return []; } - if (!$methodCall->name instanceof Node\Identifier) { + if (!$this->phpVersion->supportsNoDiscardAttribute()) { return []; }