includes:
	- tests/phpstan/configs/gc-hacks.neon
	- tests/phpstan/configs/optional-com-dotnet.neon
	- tests/phpstan/configs/phpstan-bugs.neon
	- tests/phpstan/configs/pthreads-bugs.neon

parameters:
	level: 3
	autoload_files:
		- tests/phpstan/bootstrap.php
		- src/PocketMine.php
	paths:
		- src
	reportUnmatchedIgnoredErrors: false #no other way to silence platform-specific non-warnings
	ignoreErrors:
		-
			message: "#^Function parallel\\\\bootstrap not found\\.$#"
			count: 1
			path: src/PocketMine.php

		-
			message: "#^Call to an undefined method pocketmine\\\\command\\\\CommandSender\\:\\:teleport\\(\\)\\.$#"
			count: 1
			path: src/command/defaults/TeleportCommand.php
#			comment: "not actually possible, but high cost to fix warning"

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\EntityDeathEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\Living but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/EntityDeathEvent.php

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\EntityShootBowEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\Living but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/EntityShootBowEvent.php

		-
			message: "#^Property pocketmine\\\\event\\\\entity\\\\EntityShootBowEvent\\:\\:\\$projectile \\(pocketmine\\\\entity\\\\projectile\\\\Projectile\\) does not accept pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/EntityShootBowEvent.php

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\ItemDespawnEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\object\\\\ItemEntity but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/ItemDespawnEvent.php

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\ItemSpawnEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\object\\\\ItemEntity but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/ItemSpawnEvent.php

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\ProjectileHitEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\projectile\\\\Projectile but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/ProjectileHitEvent.php

		-
			message: "#^Method pocketmine\\\\event\\\\entity\\\\ProjectileLaunchEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\projectile\\\\Projectile but returns pocketmine\\\\entity\\\\Entity\\.$#"
			count: 1
			path: src/event/entity/ProjectileLaunchEvent.php

		-
			message: "#^Used constant pocketmine\\\\RESOURCE_PATH not found\\.$#"
			count: 1
			path: src/network/mcpe/protocol/StartGamePacket.php

		-
			message: "#^Cannot instantiate interface pocketmine\\\\world\\\\format\\\\io\\\\WorldProvider\\.$#"
			count: 1
			path: src/world/WorldManager.php

		-
			message: "#^Cannot instantiate interface pocketmine\\\\world\\\\format\\\\io\\\\WritableWorldProvider\\.$#"
			count: 1
			path: src/world/WorldManager.php

		-
			message: "#^Cannot instantiate interface pocketmine\\\\world\\\\format\\\\io\\\\WritableWorldProvider\\.$#"
			count: 2
			path: src/world/format/io/FormatConverter.php

		-
			message: "#^Constant pocketmine\\\\COMPOSER_AUTOLOADER_PATH not found\\.$#"
			path: src

		-
			message: "#^Constant pocketmine\\\\GIT_COMMIT not found\\.$#"
			path: src

		-
			message: "#^Constant pocketmine\\\\PATH not found\\.$#"
			path: src

		-
			message: "#^Constant pocketmine\\\\PLUGIN_PATH not found\\.$#"
			path: src

		-
			message: "#^Constant pocketmine\\\\RESOURCE_PATH not found\\.$#"
			path: src

		-
			message: "#^Constant pocketmine\\\\VERSION not found\\.$#"
			path: src