diff --git a/tests/PHPStan/Rules/Methods/CallToMethodStatementWithoutSideEffectsRuleTest.php b/tests/PHPStan/Rules/Methods/CallToMethodStatementWithoutSideEffectsRuleTest.php index a160bfcea7..3959c73891 100644 --- a/tests/PHPStan/Rules/Methods/CallToMethodStatementWithoutSideEffectsRuleTest.php +++ b/tests/PHPStan/Rules/Methods/CallToMethodStatementWithoutSideEffectsRuleTest.php @@ -5,6 +5,7 @@ use PHPStan\Rules\Rule; use PHPStan\Rules\RuleLevelHelper; use PHPStan\Testing\RuleTestCase; +use PHPUnit\Framework\Attributes\RequiresPhp; use function array_merge; use const PHP_VERSION_ID; @@ -19,7 +20,31 @@ protected function getRule(): Rule return new CallToMethodStatementWithoutSideEffectsRule(new RuleLevelHelper(self::createReflectionProvider(), true, false, true, false, false, false, true)); } + #[RequiresPhp('>= 8.0')] public function testRule(): void + { + $this->analyse([__DIR__ . '/data/method-call-statement-no-side-effects.php'], [ + [ + 'Call to method DateTimeImmutable::modify() on a separate line has no effect.', + 15, + ], + [ + 'Call to method Exception::getCode() on a separate line has no effect.', + 21, + ], + [ + 'Call to method MethodCallStatementNoSideEffects\Bar::doPure() on a separate line has no effect.', + 63, + ], + [ + 'Call to method MethodCallStatementNoSideEffects\Bar::doPureWithThrowsVoid() on a separate line has no effect.', + 64, + ], + ]); + } + + #[RequiresPhp('< 8')] + public function testRulePhp7(): void { $this->analyse([__DIR__ . '/data/method-call-statement-no-side-effects.php'], [ [ diff --git a/tests/PHPStan/Rules/Methods/CallToStaticMethodStatementWithoutSideEffectsRuleTest.php b/tests/PHPStan/Rules/Methods/CallToStaticMethodStatementWithoutSideEffectsRuleTest.php index bec56ff7d6..4c7b064056 100644 --- a/tests/PHPStan/Rules/Methods/CallToStaticMethodStatementWithoutSideEffectsRuleTest.php +++ b/tests/PHPStan/Rules/Methods/CallToStaticMethodStatementWithoutSideEffectsRuleTest.php @@ -5,6 +5,7 @@ use PHPStan\Rules\Rule; use PHPStan\Rules\RuleLevelHelper; use PHPStan\Testing\RuleTestCase; +use PHPUnit\Framework\Attributes\RequiresPhp; /** * @extends RuleTestCase @@ -21,7 +22,19 @@ protected function getRule(): Rule ); } + #[RequiresPhp('>= 8.0')] public function testRule(): void + { + $this->analyse([__DIR__ . '/data/static-method-call-statement-no-side-effects.php'], [ + [ + 'Call to method DateTime::format() on a separate line has no effect.', + 23, + ], + ]); + } + + #[RequiresPhp('< 8')] + public function testRulePhp7(): void { $this->analyse([__DIR__ . '/data/static-method-call-statement-no-side-effects.php'], [ [