diff --git a/composer.json b/composer.json index 1b5a124378..de21576b8e 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "phpunit/phpunit": "^8.2.4", "php-coveralls/php-coveralls": "^2.1", "mouf/picotainer": "^1.1", - "phpstan/phpstan": "^0.12.3", + "phpstan/phpstan": "^0.12.25", "beberlei/porpaginas": "^1.2", "myclabs/php-enum": "^1.6.6", "doctrine/coding-standard": "^7.0", diff --git a/src/Types/ResolvableMutableInputObjectType.php b/src/Types/ResolvableMutableInputObjectType.php index 0684c8dcb4..6bb1ab5bf9 100644 --- a/src/Types/ResolvableMutableInputObjectType.php +++ b/src/Types/ResolvableMutableInputObjectType.php @@ -13,6 +13,7 @@ use TheCodingMachine\GraphQLite\InputTypeUtils; use TheCodingMachine\GraphQLite\Parameters\MissingArgumentException; use TheCodingMachine\GraphQLite\Parameters\ParameterInterface; +use Webmozart\Assert\Assert; use function count; use function is_array; @@ -21,7 +22,7 @@ */ class ResolvableMutableInputObjectType extends MutableInputObjectType implements ResolvableMutableInputInterface { - /** @var callable&array */ + /** @var callable&array{object|string, string} */ private $resolve; /** @var ParameterInterface[] */ private $parameters; @@ -49,7 +50,9 @@ class ResolvableMutableInputObjectType extends MutableInputObjectType implements */ public function __construct(string $name, FieldsBuilder $fieldsBuilder, $factory, string $methodName, ?string $comment, bool $canBeInstantiatedWithoutParameters, array $additionalConfig = []) { - $this->resolve = [ $factory, $methodName ]; + $resolve = [ $factory, $methodName ]; + Assert::isCallable($resolve); + $this->resolve = $resolve; $this->fieldsBuilder = $fieldsBuilder; $fields = function () {