diff --git a/src/Usages/Reproducer2Usages.php b/src/Usages/Reproducer2Usages.php new file mode 100644 index 0000000..e04e88d --- /dev/null +++ b/src/Usages/Reproducer2Usages.php @@ -0,0 +1,37 @@ + + */ +class Reproducer2Usages implements Rule +{ + + public function getNodeType(): string + { + return FullyQualified::class; + } + + + /** + * @param FullyQualified $node + * @param Scope $scope + * @return list + */ + public function processNode(Node $node, Scope $scope): array + { + return [ + RuleErrorBuilder::message(sprintf('class %s found in method %s', $node->toString(), $scope->getFunction()?->getName() ?? 'null'))->build(), + ]; + } + +} diff --git a/tests/Usages/Reproducer2Test.php b/tests/Usages/Reproducer2Test.php new file mode 100644 index 0000000..6e5df85 --- /dev/null +++ b/tests/Usages/Reproducer2Test.php @@ -0,0 +1,46 @@ +analyse([__DIR__ . '/../src/Reproducer2Class.php'], [ + [ + 'class DateTime found in method null', + 12, + ], + [ + 'class Baz\Waldo found in method null', + 16, + ], + ]); + } + + + public static function getAdditionalConfigFiles(): array + { + return [ + __DIR__ . '/../../extension.neon', + ]; + } + +} diff --git a/tests/src/Reproducer2Class.php b/tests/src/Reproducer2Class.php new file mode 100644 index 0000000..b127fb9 --- /dev/null +++ b/tests/src/Reproducer2Class.php @@ -0,0 +1,19 @@ +