Skip to content

Commit

Permalink
php <8.1 compat
Browse files Browse the repository at this point in the history
  • Loading branch information
staabm committed Jan 7, 2024
1 parent 300e590 commit 3a87cc0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
11 changes: 9 additions & 2 deletions tests/PHPStan/Rules/Classes/RequireExtendsRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use PHPStan\Rules\Rule;
use PHPStan\Testing\RuleTestCase;
use const PHP_VERSION_ID;

/**
* @extends RuleTestCase<RequireExtendsRule>
Expand All @@ -18,7 +19,11 @@ protected function getRule(): Rule

public function testRule(): void
{
$this->analyse([__DIR__ . '/../PhpDoc/data/incompatible-require-extends.php'], [
if (PHP_VERSION_ID < 80100) {
$this->markTestSkipped('Test requires PHP 8.1');
}

$expectedErrors = [
[
'IncompatibleRequireExtends\ValidTrait requires using class to extend IncompatibleRequireExtends\SomeClass, but IncompatibleRequireExtends\InValidTraitUse2 does not.',
46,
Expand All @@ -35,7 +40,9 @@ public function testRule(): void
'IncompatibleRequireExtends\ValidInterface requires implementing class to extend IncompatibleRequireExtends\SomeClass, but IncompatibleRequireExtends\InvalidInterfaceUse does not.',
58,
],
]);
];

$this->analyse([__DIR__ . '/../PhpDoc/data/incompatible-require-extends.php'], $expectedErrors);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use PHPStan\Rules\ClassCaseSensitivityCheck;
use PHPStan\Rules\Rule;
use PHPStan\Testing\RuleTestCase;
use const PHP_VERSION_ID;

/**
* @extends RuleTestCase<IncompatibleRequireExtendsTypeRule>
Expand All @@ -26,6 +27,13 @@ protected function getRule(): Rule

public function testRule(): void
{
$enumError = 'PHPDoc tag @require-extends cannot contain non-class type IncompatibleRequireExtends\SomeEnum.';
$enumTip = null;
if (PHP_VERSION_ID < 80100) {
$enumError = 'PHPDoc tag @require-extends contains unknown class IncompatibleRequireExtends\SomeEnum.';
$enumTip = 'Learn more at https://phpstan.org/user-guide/discovering-symbols';
}

$this->analyse([__DIR__ . '/data/incompatible-require-extends.php'], [
[
'PHPDoc tag @require-extends cannot contain non-class type IncompatibleRequireExtends\SomeTrait.',
Expand All @@ -36,8 +44,9 @@ public function testRule(): void
13,
],
[
'PHPDoc tag @require-extends cannot contain non-class type IncompatibleRequireExtends\SomeEnum.',
$enumError,
18,
$enumTip,
],
[
'PHPDoc tag @require-extends contains unknown class IncompatibleRequireExtends\TypeDoesNotExist.',
Expand Down

0 comments on commit 3a87cc0

Please sign in to comment.