From a23355d87f5abbdfa80693e69fbca5ac7613cde1 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 21 May 2024 18:13:03 +0900 Subject: [PATCH] Remove NoAbstractMethodRule as way too opinionated (#121) --- config/static-rules.neon | 1 - docs/rules_overview.md | 34 +-------- src/Rules/NoAbstractMethodRule.php | 70 ------------------- .../Fixture/SkipNonAbstractMethod.php | 12 ---- .../Fixture/SomeAbstractMethod.php | 10 --- .../NoAbstractMethodRuleTest.php | 42 ----------- .../config/configured_rule.neon | 5 -- 7 files changed, 1 insertion(+), 173 deletions(-) delete mode 100644 src/Rules/NoAbstractMethodRule.php delete mode 100644 tests/Rules/NoAbstractMethodRule/Fixture/SkipNonAbstractMethod.php delete mode 100644 tests/Rules/NoAbstractMethodRule/Fixture/SomeAbstractMethod.php delete mode 100644 tests/Rules/NoAbstractMethodRule/NoAbstractMethodRuleTest.php delete mode 100644 tests/Rules/NoAbstractMethodRule/config/configured_rule.neon diff --git a/config/static-rules.neon b/config/static-rules.neon index bae51a6f..d3ac6ccd 100644 --- a/config/static-rules.neon +++ b/config/static-rules.neon @@ -11,7 +11,6 @@ rules: # paths - Symplify\PHPStanRules\Rules\NoMissingDirPathRule - - Symplify\PHPStanRules\Rules\NoAbstractMethodRule - Symplify\PHPStanRules\Rules\NoReferenceRule - Symplify\PHPStanRules\Rules\NoArrayAccessOnObjectRule diff --git a/docs/rules_overview.md b/docs/rules_overview.md index a6705d3e..64dbebac 100644 --- a/docs/rules_overview.md +++ b/docs/rules_overview.md @@ -1,4 +1,4 @@ -# 43 Rules Overview +# 42 Rules Overview ## AnnotateRegexClassConstWithRegexLinkRule @@ -550,38 +550,6 @@ final class SomeService
-## NoAbstractMethodRule - -Use explicit interface contract or a service over unclear abstract methods - -- class: [`Symplify\PHPStanRules\Rules\NoAbstractMethodRule`](../src/Rules/NoAbstractMethodRule.php) - -```php -abstract class SomeClass -{ - abstract public function run(); -} -``` - -:x: - -
- -```php -abstract class SomeClass implements RunnableInterface -{ -} - -interface RunnableInterface -{ - public function run(); -} -``` - -:+1: - -
- ## NoArrayAccessOnObjectRule Use explicit methods over array access on object diff --git a/src/Rules/NoAbstractMethodRule.php b/src/Rules/NoAbstractMethodRule.php deleted file mode 100644 index 68b27efc..00000000 --- a/src/Rules/NoAbstractMethodRule.php +++ /dev/null @@ -1,70 +0,0 @@ - - */ - public function getNodeType(): string - { - return ClassMethod::class; - } - - /** - * @param ClassMethod $node - * @return string[] - */ - public function processNode(Node $node, Scope $scope): array - { - if (! $node->isAbstract()) { - return []; - } - - return [self::ERROR_MESSAGE]; - } - - public function getRuleDefinition(): RuleDefinition - { - return new RuleDefinition(self::ERROR_MESSAGE, [ - new CodeSample( - <<<'CODE_SAMPLE' -abstract class SomeClass -{ - abstract public function run(); -} -CODE_SAMPLE - , - <<<'CODE_SAMPLE' -abstract class SomeClass implements RunnableInterface -{ -} - -interface RunnableInterface -{ - public function run(); -} -CODE_SAMPLE - ), - ]); - } -} diff --git a/tests/Rules/NoAbstractMethodRule/Fixture/SkipNonAbstractMethod.php b/tests/Rules/NoAbstractMethodRule/Fixture/SkipNonAbstractMethod.php deleted file mode 100644 index 0c4063c0..00000000 --- a/tests/Rules/NoAbstractMethodRule/Fixture/SkipNonAbstractMethod.php +++ /dev/null @@ -1,12 +0,0 @@ -analyse([$filePath], $expectedErrorMessagesWithLines); - } - - public static function provideData(): Iterator - { - yield [__DIR__ . '/Fixture/SomeAbstractMethod.php', [[NoAbstractMethodRule::ERROR_MESSAGE, 9]]]; - yield [__DIR__ . '/Fixture/SkipNonAbstractMethod.php', []]; - } - - /** - * @return string[] - */ - public static function getAdditionalConfigFiles(): array - { - return [__DIR__ . '/config/configured_rule.neon']; - } - - protected function getRule(): Rule - { - return self::getContainer()->getByType(NoAbstractMethodRule::class); - } -} diff --git a/tests/Rules/NoAbstractMethodRule/config/configured_rule.neon b/tests/Rules/NoAbstractMethodRule/config/configured_rule.neon deleted file mode 100644 index c6a8bd0d..00000000 --- a/tests/Rules/NoAbstractMethodRule/config/configured_rule.neon +++ /dev/null @@ -1,5 +0,0 @@ -includes: - - ../../../config/included_services.neon - -rules: - - Symplify\PHPStanRules\Rules\NoAbstractMethodRule