mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-07 10:22:56 +00:00
Merge branch 'minor-next' into major-next
This commit is contained in:
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php: ["8.3"]
|
||||
php: ["8.3", "8.4"]
|
||||
|
||||
uses: ./.github/workflows/main-php-matrix.yml
|
||||
with:
|
||||
|
@ -4,6 +4,8 @@ includes:
|
||||
- tests/phpstan/configs/impossible-generics.neon
|
||||
- tests/phpstan/configs/php-bugs.neon
|
||||
- tests/phpstan/configs/phpstan-bugs.neon
|
||||
- tests/phpstan/configs/property-hook-sadness.neon
|
||||
- tests/phpstan/configs/reflection-class-sadness.neon
|
||||
- tests/phpstan/configs/spl-fixed-array-sucks.neon
|
||||
- vendor/phpstan/phpstan-phpunit/extension.neon
|
||||
- vendor/phpstan/phpstan-phpunit/rules.neon
|
||||
|
@ -48,7 +48,7 @@ final class AsyncGeneratorExecutor implements GeneratorExecutor{
|
||||
\Logger $logger,
|
||||
private readonly AsyncPool $workerPool,
|
||||
private readonly GeneratorExecutorSetupParameters $setupParameters,
|
||||
int $asyncContextId = null
|
||||
?int $asyncContextId = null
|
||||
){
|
||||
$this->logger = new \PrefixedLogger($logger, "AsyncGeneratorExecutor");
|
||||
|
||||
|
61
tests/phpstan/configs/property-hook-sadness.neon
Normal file
61
tests/phpstan/configs/property-hook-sadness.neon
Normal file
@ -0,0 +1,61 @@
|
||||
parameters:
|
||||
ignoreErrors:
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Human\:\:\$enderInventory because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Human.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Human\:\:\$hungerManager because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Human.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Human\:\:\$inventory because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Human.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Human\:\:\$offHandInventory because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Human.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Human\:\:\$xpManager because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Human.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Living\:\:\$armorInventory because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Living.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\entity\\Living\:\:\$effectManager because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/entity/Living.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\player\\Player\:\:\$craftingGrid because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/player/Player.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\player\\Player\:\:\$cursorInventory because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/player/Player.php
|
||||
|
||||
-
|
||||
message: '#^Cannot unset property pocketmine\\world\\format\\io\\leveldb\\LevelDB\:\:\$db because it might have hooks in a subclass\.$#'
|
||||
identifier: unset.possiblyHookedProperty
|
||||
count: 1
|
||||
path: ../../../src/world/format/io/leveldb/LevelDB.php
|
31
tests/phpstan/configs/reflection-class-sadness.neon
Normal file
31
tests/phpstan/configs/reflection-class-sadness.neon
Normal file
@ -0,0 +1,31 @@
|
||||
parameters:
|
||||
ignoreErrors:
|
||||
-
|
||||
message: '#^Call\-site variance of covariant pocketmine\\event\\Event in generic type ReflectionClass\<covariant pocketmine\\event\\Event\> in PHPDoc tag @param for parameter \$class is redundant, template type T of object of class ReflectionClass has the same variance\.$#'
|
||||
identifier: generics.callSiteVarianceRedundant
|
||||
count: 2
|
||||
path: ../../phpunit/event/HandlerListManagerTest.php
|
||||
|
||||
-
|
||||
message: '#^Call\-site variance of covariant pocketmine\\event\\Event in generic type ReflectionClass\<covariant pocketmine\\event\\Event\> in PHPDoc tag @param for parameter \$expect is redundant, template type T of object of class ReflectionClass has the same variance\.$#'
|
||||
identifier: generics.callSiteVarianceRedundant
|
||||
count: 1
|
||||
path: ../../phpunit/event/HandlerListManagerTest.php
|
||||
|
||||
-
|
||||
message: '#^Call\-site variance of covariant pocketmine\\event\\Event in generic type ReflectionClass\<covariant pocketmine\\event\\Event\> in PHPDoc tag @return is redundant, template type T of object of class ReflectionClass has the same variance\.$#'
|
||||
identifier: generics.callSiteVarianceRedundant
|
||||
count: 3
|
||||
path: ../../phpunit/event/HandlerListManagerTest.php
|
||||
|
||||
-
|
||||
message: '#^Call\-site variance of covariant pocketmine\\event\\Event in generic type ReflectionClass\<covariant pocketmine\\event\\Event\> in PHPDoc tag @var for property pocketmine\\event\\HandlerListManagerTest\:\:\$isValidFunc is redundant, template type T of object of class ReflectionClass has the same variance\.$#'
|
||||
identifier: generics.callSiteVarianceRedundant
|
||||
count: 1
|
||||
path: ../../phpunit/event/HandlerListManagerTest.php
|
||||
|
||||
-
|
||||
message: '#^Call\-site variance of covariant pocketmine\\event\\Event in generic type ReflectionClass\<covariant pocketmine\\event\\Event\> in PHPDoc tag @var for property pocketmine\\event\\HandlerListManagerTest\:\:\$resolveParentFunc is redundant, template type T of object of class ReflectionClass has the same variance\.$#'
|
||||
identifier: generics.callSiteVarianceRedundant
|
||||
count: 2
|
||||
path: ../../phpunit/event/HandlerListManagerTest.php
|
@ -36,12 +36,12 @@ class HandlerListManagerTest extends TestCase{
|
||||
|
||||
/**
|
||||
* @var \Closure
|
||||
* @phpstan-var \Closure(\ReflectionClass<Event>) : bool
|
||||
* @phpstan-var \Closure(\ReflectionClass<covariant Event>) : bool
|
||||
*/
|
||||
private $isValidFunc;
|
||||
/**
|
||||
* @var \Closure
|
||||
* @phpstan-var \Closure(\ReflectionClass<Event>) : ?\ReflectionClass<Event>
|
||||
* @phpstan-var \Closure(\ReflectionClass<covariant Event>) : ?\ReflectionClass<covariant Event>
|
||||
*/
|
||||
private $resolveParentFunc;
|
||||
|
||||
@ -54,7 +54,7 @@ class HandlerListManagerTest extends TestCase{
|
||||
|
||||
/**
|
||||
* @return \Generator|mixed[][]
|
||||
* @phpstan-return \Generator<int, array{\ReflectionClass<Event>, bool, string}, void, void>
|
||||
* @phpstan-return \Generator<int, array{\ReflectionClass<covariant Event>, bool, string}, void, void>
|
||||
*/
|
||||
public static function isValidClassProvider() : \Generator{
|
||||
yield [new \ReflectionClass(Event::class), false, "event base should not be handleable"];
|
||||
@ -64,7 +64,7 @@ class HandlerListManagerTest extends TestCase{
|
||||
}
|
||||
|
||||
/**
|
||||
* @phpstan-param \ReflectionClass<Event> $class
|
||||
* @phpstan-param \ReflectionClass<covariant Event> $class
|
||||
*/
|
||||
#[DataProvider("isValidClassProvider")]
|
||||
public function testIsValidClass(\ReflectionClass $class, bool $isValid, string $reason) : void{
|
||||
@ -73,7 +73,7 @@ class HandlerListManagerTest extends TestCase{
|
||||
|
||||
/**
|
||||
* @return \Generator|\ReflectionClass[][]
|
||||
* @phpstan-return \Generator<int, array{\ReflectionClass<Event>, \ReflectionClass<Event>|null}, void, void>
|
||||
* @phpstan-return \Generator<int, array{\ReflectionClass<covariant Event>, \ReflectionClass<covariant Event>|null}, void, void>
|
||||
*/
|
||||
public static function resolveParentClassProvider() : \Generator{
|
||||
yield [new \ReflectionClass(TestConcreteExtendsAllowHandleEvent::class), new \ReflectionClass(TestAbstractAllowHandleEvent::class)];
|
||||
@ -83,8 +83,8 @@ class HandlerListManagerTest extends TestCase{
|
||||
}
|
||||
|
||||
/**
|
||||
* @phpstan-param \ReflectionClass<Event> $class
|
||||
* @phpstan-param \ReflectionClass<Event>|null $expect
|
||||
* @phpstan-param \ReflectionClass<covariant Event> $class
|
||||
* @phpstan-param \ReflectionClass<covariant Event>|null $expect
|
||||
*/
|
||||
#[DataProvider("resolveParentClassProvider")]
|
||||
public function testResolveParentClass(\ReflectionClass $class, ?\ReflectionClass $expect) : void{
|
||||
|
Reference in New Issue
Block a user