@@ -168,7 +168,7 @@ discard block  | 
                                                    ||
| 168 | 168 | public function getExtendedTypes(): array  | 
                                                        
| 169 | 169 |      { | 
                                                        
| 170 | 170 | return \array_merge(  | 
                                                        
| 171 | -            \array_map(function ($type) { | 
                                                        |
| 171 | +            \array_map(function($type) { | 
                                                        |
| 172 | 172 | return $this->getExtendedType($type);  | 
                                                        
| 173 | 173 | }, \array_values($this->schema->getTypeMap())),  | 
                                                        
| 174 | 174 | $this->definitionBuilder->buildTypes(\array_values($this->typeDefinitionMap))  | 
                                                        
@@ -187,7 +187,7 @@ discard block  | 
                                                    ||
| 187 | 187 | |
| 188 | 188 | return \array_merge(  | 
                                                        
| 189 | 189 | $existingDirectives,  | 
                                                        
| 190 | -            \array_map(function (DirectiveDefinitionNode $node) { | 
                                                        |
| 190 | +            \array_map(function(DirectiveDefinitionNode $node) { | 
                                                        |
| 191 | 191 | return $this->definitionBuilder->buildDirective($node);  | 
                                                        
| 192 | 192 | }, $this->directiveDefinitions)  | 
                                                        
| 193 | 193 | );  | 
                                                        
@@ -403,10 +403,10 @@ discard block  | 
                                                    ||
| 403 | 403 | return newObjectType([  | 
                                                        
| 404 | 404 | 'name' => $typeName,  | 
                                                        
| 405 | 405 | 'description' => $type->getDescription(),  | 
                                                        
| 406 | -            'interfaces'        => function () use ($type) { | 
                                                        |
| 406 | +            'interfaces'        => function() use ($type) { | 
                                                        |
| 407 | 407 | return $this->extendImplementedInterfaces($type);  | 
                                                        
| 408 | 408 | },  | 
                                                        
| 409 | -            'fields'            => function () use ($type) { | 
                                                        |
| 409 | +            'fields'            => function() use ($type) { | 
                                                        |
| 410 | 410 | return $this->extendFieldMap($type);  | 
                                                        
| 411 | 411 | },  | 
                                                        
| 412 | 412 | 'astNode' => $type->getAstNode(),  | 
                                                        
@@ -433,7 +433,7 @@ discard block  | 
                                                    ||
| 433 | 433 | return newInterfaceType([  | 
                                                        
| 434 | 434 | 'name' => $typeName,  | 
                                                        
| 435 | 435 | 'description' => $type->getDescription(),  | 
                                                        
| 436 | -            'fields'            => function () use ($type) { | 
                                                        |
| 436 | +            'fields'            => function() use ($type) { | 
                                                        |
| 437 | 437 | return $this->extendFieldMap($type);  | 
                                                        
| 438 | 438 | },  | 
                                                        
| 439 | 439 | 'astNode' => $type->getAstNode(),  | 
                                                        
@@ -452,7 +452,7 @@ discard block  | 
                                                    ||
| 452 | 452 | return newUnionType([  | 
                                                        
| 453 | 453 | 'name' => $type->getName(),  | 
                                                        
| 454 | 454 | 'description' => $type->getDescription(),  | 
                                                        
| 455 | -            'types'       => \array_map(function ($unionType) { | 
                                                        |
| 455 | +            'types'       => \array_map(function($unionType) { | 
                                                        |
| 456 | 456 | return $this->getExtendedType($unionType);  | 
                                                        
| 457 | 457 | }, $type->getTypes()),  | 
                                                        
| 458 | 458 | 'astNode' => $type->getAstNode(),  | 
                                                        
@@ -467,7 +467,7 @@ discard block  | 
                                                    ||
| 467 | 467 | */  | 
                                                        
| 468 | 468 | protected function extendImplementedInterfaces(ObjectType $type): array  | 
                                                        
| 469 | 469 |      { | 
                                                        
| 470 | -        $interfaces = \array_map(function (InterfaceType $interface) { | 
                                                        |
| 470 | +        $interfaces = \array_map(function(InterfaceType $interface) { | 
                                                        |
| 471 | 471 | return $this->getExtendedType($interface);  | 
                                                        
| 472 | 472 | }, $type->getInterfaces());  | 
                                                        
| 473 | 473 | |
@@ -509,7 +509,7 @@ discard block  | 
                                                    ||
| 509 | 509 | 'description' => $field->getDescription(),  | 
                                                        
| 510 | 510 | 'deprecationReason' => $field->getDeprecationReason(),  | 
                                                        
| 511 | 511 | 'type' => $this->extendFieldType($field->getType()),  | 
                                                        
| 512 | -                'args'              => keyMap($field->getArguments(), function (Argument $argument) { | 
                                                        |
| 512 | +                'args'              => keyMap($field->getArguments(), function(Argument $argument) { | 
                                                        |
| 513 | 513 | return $argument->getName();  | 
                                                        
| 514 | 514 | }),  | 
                                                        
| 515 | 515 | 'astNode' => $field->getAstNode(),  | 
                                                        
@@ -95,7 +95,7 @@ discard block  | 
                                                    ||
| 95 | 95 | |
| 96 | 96 | $builtInTypes = keyMap(  | 
                                                        
| 97 | 97 | \array_merge(specifiedScalarTypes(), introspectionTypes()),  | 
                                                        
| 98 | -            function (NamedTypeInterface $type) { | 
                                                        |
| 98 | +            function(NamedTypeInterface $type) { | 
                                                        |
| 99 | 99 | return $type->getName();  | 
                                                        
| 100 | 100 | }  | 
                                                        
| 101 | 101 | );  | 
                                                        
@@ -110,7 +110,7 @@ discard block  | 
                                                    ||
| 110 | 110 | */  | 
                                                        
| 111 | 111 | public function buildTypes(array $nodes): array  | 
                                                        
| 112 | 112 |      { | 
                                                        
| 113 | -        return \array_map(function (NodeInterface $node) { | 
                                                        |
| 113 | +        return \array_map(function(NodeInterface $node) { | 
                                                        |
| 114 | 114 | return $this->buildType($node);  | 
                                                        
| 115 | 115 | }, $nodes);  | 
                                                        
| 116 | 116 | }  | 
                                                        
@@ -146,7 +146,7 @@ discard block  | 
                                                    ||
| 146 | 146 | return newDirective([  | 
                                                        
| 147 | 147 | 'name' => $node->getNameValue(),  | 
                                                        
| 148 | 148 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 149 | -            'locations'   => \array_map(function (NameNode $node) { | 
                                                        |
| 149 | +            'locations'   => \array_map(function(NameNode $node) { | 
                                                        |
| 150 | 150 | return $node->getValue();  | 
                                                        
| 151 | 151 | }, $node->getLocations()),  | 
                                                        
| 152 | 152 | 'args' => $node->hasArguments() ? $this->buildArguments($node->getArguments()) : [],  | 
                                                        
@@ -190,10 +190,10 @@ discard block  | 
                                                    ||
| 190 | 190 |      { | 
                                                        
| 191 | 191 | return keyValueMap(  | 
                                                        
| 192 | 192 | $nodes,  | 
                                                        
| 193 | -            function (InputValueDefinitionNode $value) { | 
                                                        |
| 193 | +            function(InputValueDefinitionNode $value) { | 
                                                        |
| 194 | 194 | return $value->getNameValue();  | 
                                                        
| 195 | 195 | },  | 
                                                        
| 196 | -            function (InputValueDefinitionNode $value): array { | 
                                                        |
| 196 | +            function(InputValueDefinitionNode $value): array { | 
                                                        |
| 197 | 197 | $type = $this->buildWrappedType($value->getType());  | 
                                                        
| 198 | 198 | $defaultValue = $value->getDefaultValue();  | 
                                                        
| 199 | 199 | return [  | 
                                                        
@@ -245,11 +245,11 @@ discard block  | 
                                                    ||
| 245 | 245 | return newObjectType([  | 
                                                        
| 246 | 246 | 'name' => $node->getNameValue(),  | 
                                                        
| 247 | 247 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 248 | -            'fields'      => function () use ($node) { | 
                                                        |
| 248 | +            'fields'      => function() use ($node) { | 
                                                        |
| 249 | 249 | return $this->buildFields($node);  | 
                                                        
| 250 | 250 | },  | 
                                                        
| 251 | -            'interfaces'  => function () use ($node) { | 
                                                        |
| 252 | -                return $node->hasInterfaces() ? \array_map(function (NodeInterface $interface) { | 
                                                        |
| 251 | +            'interfaces'  => function() use ($node) { | 
                                                        |
| 252 | +                return $node->hasInterfaces() ? \array_map(function(NodeInterface $interface) { | 
                                                        |
| 253 | 253 | return $this->buildType($interface);  | 
                                                        
| 254 | 254 | }, $node->getInterfaces()) : [];  | 
                                                        
| 255 | 255 | },  | 
                                                        
@@ -265,11 +265,11 @@ discard block  | 
                                                    ||
| 265 | 265 |      { | 
                                                        
| 266 | 266 | return $node->hasFields() ? keyValueMap(  | 
                                                        
| 267 | 267 | $node->getFields(),  | 
                                                        
| 268 | -            function ($value) { | 
                                                        |
| 268 | +            function($value) { | 
                                                        |
| 269 | 269 | /** @var FieldDefinitionNode|InputValueDefinitionNode $value */  | 
                                                        
| 270 | 270 | return $value->getNameValue();  | 
                                                        
| 271 | 271 | },  | 
                                                        
| 272 | -            function ($value) use ($node) { | 
                                                        |
| 272 | +            function($value) use ($node) { | 
                                                        |
| 273 | 273 | /** @var FieldDefinitionNode|InputValueDefinitionNode $value */  | 
                                                        
| 274 | 274 | return $this->buildField(  | 
                                                        
| 275 | 275 | $value,  | 
                                                        
@@ -288,7 +288,7 @@ discard block  | 
                                                    ||
| 288 | 288 | return newInterfaceType([  | 
                                                        
| 289 | 289 | 'name' => $node->getNameValue(),  | 
                                                        
| 290 | 290 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 291 | -            'fields'      => function () use ($node): array { | 
                                                        |
| 291 | +            'fields'      => function() use ($node): array { | 
                                                        |
| 292 | 292 | return $this->buildFields($node);  | 
                                                        
| 293 | 293 | },  | 
                                                        
| 294 | 294 | 'astNode' => $node,  | 
                                                        
@@ -306,10 +306,10 @@ discard block  | 
                                                    ||
| 306 | 306 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 307 | 307 | 'values' => $node->hasValues() ? keyValueMap(  | 
                                                        
| 308 | 308 | $node->getValues(),  | 
                                                        
| 309 | -                function (EnumValueDefinitionNode $value): string { | 
                                                        |
| 309 | +                function(EnumValueDefinitionNode $value): string { | 
                                                        |
| 310 | 310 | return $value->getNameValue();  | 
                                                        
| 311 | 311 | },  | 
                                                        
| 312 | -                function (EnumValueDefinitionNode $value): array { | 
                                                        |
| 312 | +                function(EnumValueDefinitionNode $value): array { | 
                                                        |
| 313 | 313 | return [  | 
                                                        
| 314 | 314 | 'description' => $value->getDescriptionValue(),  | 
                                                        
| 315 | 315 | 'deprecationReason' => $this->getDeprecationReason($value),  | 
                                                        
@@ -330,7 +330,7 @@ discard block  | 
                                                    ||
| 330 | 330 | return newUnionType([  | 
                                                        
| 331 | 331 | 'name' => $node->getNameValue(),  | 
                                                        
| 332 | 332 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 333 | -            'types'       => $node->hasTypes() ? \array_map(function (TypeNodeInterface $type) { | 
                                                        |
| 333 | +            'types'       => $node->hasTypes() ? \array_map(function(TypeNodeInterface $type) { | 
                                                        |
| 334 | 334 | return $this->buildType($type);  | 
                                                        
| 335 | 335 | }, $node->getTypes()) : [],  | 
                                                        
| 336 | 336 | 'astNode' => $node,  | 
                                                        
@@ -346,7 +346,7 @@ discard block  | 
                                                    ||
| 346 | 346 | return newScalarType([  | 
                                                        
| 347 | 347 | 'name' => $node->getNameValue(),  | 
                                                        
| 348 | 348 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 349 | -            'serialize'   => function ($value) { | 
                                                        |
| 349 | +            'serialize'   => function($value) { | 
                                                        |
| 350 | 350 | return $value;  | 
                                                        
| 351 | 351 | },  | 
                                                        
| 352 | 352 | 'astNode' => $node,  | 
                                                        
@@ -362,13 +362,13 @@ discard block  | 
                                                    ||
| 362 | 362 | return newInputObjectType([  | 
                                                        
| 363 | 363 | 'name' => $node->getNameValue(),  | 
                                                        
| 364 | 364 | 'description' => $node->getDescriptionValue(),  | 
                                                        
| 365 | -            'fields'      => $node->hasFields() ? function () use ($node) { | 
                                                        |
| 365 | +            'fields'      => $node->hasFields() ? function() use ($node) { | 
                                                        |
| 366 | 366 | return keyValueMap(  | 
                                                        
| 367 | 367 | $node->getFields(),  | 
                                                        
| 368 | -                    function (InputValueDefinitionNode $value): string { | 
                                                        |
| 368 | +                    function(InputValueDefinitionNode $value): string { | 
                                                        |
| 369 | 369 | return $value->getNameValue();  | 
                                                        
| 370 | 370 | },  | 
                                                        
| 371 | -                    function (InputValueDefinitionNode $value): array { | 
                                                        |
| 371 | +                    function(InputValueDefinitionNode $value): array { | 
                                                        |
| 372 | 372 | $type = $this->buildWrappedType($value->getType());  | 
                                                        
| 373 | 373 | $defaultValue = $value->getDefaultValue();  | 
                                                        
| 374 | 374 | return [  | 
                                                        
@@ -57,7 +57,7 @@ discard block  | 
                                                    ||
| 57 | 57 | */  | 
                                                        
| 58 | 58 | protected function registerIntrospectionTypes()  | 
                                                        
| 59 | 59 |      { | 
                                                        
| 60 | -        $this->container->add(GraphQL::SCHEMA_INTROSPECTION, function () { | 
                                                        |
| 60 | +        $this->container->add(GraphQL::SCHEMA_INTROSPECTION, function() { | 
                                                        |
| 61 | 61 | return newObjectType([  | 
                                                        
| 62 | 62 | 'name' => GraphQL::SCHEMA_INTROSPECTION,  | 
                                                        
| 63 | 63 | 'isIntrospection' => true,  | 
                                                        
@@ -65,19 +65,19 @@ discard block  | 
                                                    ||
| 65 | 65 | 'A GraphQL Schema defines the capabilities of a GraphQL server. It ' .  | 
                                                        
| 66 | 66 | 'exposes all available types and directives on the server, as well as ' .  | 
                                                        
| 67 | 67 | 'the entry points for query, mutation, and subscription operations.',  | 
                                                        
| 68 | -                'fields'          => function () { | 
                                                        |
| 68 | +                'fields'          => function() { | 
                                                        |
| 69 | 69 | return [  | 
                                                        
| 70 | 70 | 'types' => [  | 
                                                        
| 71 | 71 | 'description' => 'A list of all types supported by this server.',  | 
                                                        
| 72 | 72 | 'type' => newNonNull(newList(newNonNull(__Type()))),  | 
                                                        
| 73 | -                            'resolve'     => function (SchemaInterface $schema): array { | 
                                                        |
| 73 | +                            'resolve'     => function(SchemaInterface $schema): array { | 
                                                        |
| 74 | 74 | return array_values($schema->getTypeMap());  | 
                                                        
| 75 | 75 | },  | 
                                                        
| 76 | 76 | ],  | 
                                                        
| 77 | 77 | 'queryType' => [  | 
                                                        
| 78 | 78 | 'description' => 'The type that query operations will be rooted at.',  | 
                                                        
| 79 | 79 | 'type' => newNonNull(__Type()),  | 
                                                        
| 80 | -                            'resolve'     => function (SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 80 | +                            'resolve'     => function(SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 81 | 81 | return $schema->getQueryType();  | 
                                                        
| 82 | 82 | },  | 
                                                        
| 83 | 83 | ],  | 
                                                        
@@ -86,7 +86,7 @@ discard block  | 
                                                    ||
| 86 | 86 | 'If this server supports mutation, the type that ' .  | 
                                                        
| 87 | 87 | 'mutation operations will be rooted at.',  | 
                                                        
| 88 | 88 | 'type' => __Type(),  | 
                                                        
| 89 | -                            'resolve'     => function (SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 89 | +                            'resolve'     => function(SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 90 | 90 | return $schema->getMutationType();  | 
                                                        
| 91 | 91 | },  | 
                                                        
| 92 | 92 | ],  | 
                                                        
@@ -95,14 +95,14 @@ discard block  | 
                                                    ||
| 95 | 95 | 'If this server support subscription, the type that ' .  | 
                                                        
| 96 | 96 | 'subscription operations will be rooted at.',  | 
                                                        
| 97 | 97 | 'type' => __Type(),  | 
                                                        
| 98 | -                            'resolve'     => function (SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 98 | +                            'resolve'     => function(SchemaInterface $schema): ?TypeInterface { | 
                                                        |
| 99 | 99 | return $schema->getSubscriptionType();  | 
                                                        
| 100 | 100 | },  | 
                                                        
| 101 | 101 | ],  | 
                                                        
| 102 | 102 | 'directives' => [  | 
                                                        
| 103 | 103 | 'description' => 'A list of all directives supported by this server.',  | 
                                                        
| 104 | 104 | 'type' => newNonNull(newList(newNonNull(__Directive()))),  | 
                                                        
| 105 | -                            'resolve'     => function (SchemaInterface $schema): array { | 
                                                        |
| 105 | +                            'resolve'     => function(SchemaInterface $schema): array { | 
                                                        |
| 106 | 106 | return $schema->getDirectives();  | 
                                                        
| 107 | 107 | },  | 
                                                        
| 108 | 108 | ],  | 
                                                        
@@ -111,7 +111,7 @@ discard block  | 
                                                    ||
| 111 | 111 | ]);  | 
                                                        
| 112 | 112 | }, true/* $shared */);  | 
                                                        
| 113 | 113 | |
| 114 | -        $this->container->add(GraphQL::DIRECTIVE_INTROSPECTION, function () { | 
                                                        |
| 114 | +        $this->container->add(GraphQL::DIRECTIVE_INTROSPECTION, function() { | 
                                                        |
| 115 | 115 | return newObjectType([  | 
                                                        
| 116 | 116 | 'name' => GraphQL::DIRECTIVE_INTROSPECTION,  | 
                                                        
| 117 | 117 | 'isIntrospection' => true,  | 
                                                        
@@ -122,7 +122,7 @@ discard block  | 
                                                    ||
| 122 | 122 | 'execution behavior in ways field arguments will not suffice, such as ' .  | 
                                                        
| 123 | 123 | 'conditionally including or skipping a field. Directives provide this by ' .  | 
                                                        
| 124 | 124 | 'describing additional information to the executor.',  | 
                                                        
| 125 | -                'fields'          => function () { | 
                                                        |
| 125 | +                'fields'          => function() { | 
                                                        |
| 126 | 126 | return [  | 
                                                        
| 127 | 127 | 'name' => ['type' => newNonNull(String())],  | 
                                                        
| 128 | 128 | 'description' => ['type' => String()],  | 
                                                        
@@ -131,7 +131,7 @@ discard block  | 
                                                    ||
| 131 | 131 | ],  | 
                                                        
| 132 | 132 | 'args' => [  | 
                                                        
| 133 | 133 | 'type' => newNonNull(newList(newNonNull(__InputValue()))),  | 
                                                        
| 134 | -                            'resolve' => function (DirectiveInterface $directive): array { | 
                                                        |
| 134 | +                            'resolve' => function(DirectiveInterface $directive): array { | 
                                                        |
| 135 | 135 | return $directive->getArguments() ?: [];  | 
                                                        
| 136 | 136 | },  | 
                                                        
| 137 | 137 | ],  | 
                                                        
@@ -140,7 +140,7 @@ discard block  | 
                                                    ||
| 140 | 140 | ]);  | 
                                                        
| 141 | 141 | }, true/* $shared */);  | 
                                                        
| 142 | 142 | |
| 143 | -        $this->container->add(GraphQL::DIRECTIVE_LOCATION_INTROSPECTION, function () { | 
                                                        |
| 143 | +        $this->container->add(GraphQL::DIRECTIVE_LOCATION_INTROSPECTION, function() { | 
                                                        |
| 144 | 144 | return newEnumType([  | 
                                                        
| 145 | 145 | 'name' => GraphQL::DIRECTIVE_LOCATION_INTROSPECTION,  | 
                                                        
| 146 | 146 | 'isIntrospection' => true,  | 
                                                        
@@ -206,7 +206,7 @@ discard block  | 
                                                    ||
| 206 | 206 | ]);  | 
                                                        
| 207 | 207 | }, true/* $shared */);  | 
                                                        
| 208 | 208 | |
| 209 | -        $this->container->add(GraphQL::TYPE_INTROSPECTION, function () { | 
                                                        |
| 209 | +        $this->container->add(GraphQL::TYPE_INTROSPECTION, function() { | 
                                                        |
| 210 | 210 | return newObjectType([  | 
                                                        
| 211 | 211 | 'name' => GraphQL::TYPE_INTROSPECTION,  | 
                                                        
| 212 | 212 | 'isIntrospection' => true,  | 
                                                        
@@ -219,11 +219,11 @@ discard block  | 
                                                    ||
| 219 | 219 | 'Object and Interface types provide the fields they describe. Abstract ' .  | 
                                                        
| 220 | 220 | 'types, Union and Interface, provide the Object types possible ' .  | 
                                                        
| 221 | 221 | 'at runtime. List and NonNull types compose other types.',  | 
                                                        
| 222 | -                'fields'          => function () { | 
                                                        |
| 222 | +                'fields'          => function() { | 
                                                        |
| 223 | 223 | return [  | 
                                                        
| 224 | 224 | 'kind' => [  | 
                                                        
| 225 | 225 | 'type' => newNonNull(__TypeKind()),  | 
                                                        
| 226 | -                            'resolve' => function (TypeInterface $type) { | 
                                                        |
| 226 | +                            'resolve' => function(TypeInterface $type) { | 
                                                        |
| 227 | 227 |                                  if ($type instanceof ScalarType) { | 
                                                        
| 228 | 228 | return TypeKindEnum::SCALAR;  | 
                                                        
| 229 | 229 | }  | 
                                                        
@@ -259,7 +259,7 @@ discard block  | 
                                                    ||
| 259 | 259 | 'args' => [  | 
                                                        
| 260 | 260 | 'includeDeprecated' => ['type' => Boolean(), 'defaultValue' => false],  | 
                                                        
| 261 | 261 | ],  | 
                                                        
| 262 | - 'resolve' => function (TypeInterface $type, array $args):  | 
                                                        |
| 262 | + 'resolve' => function(TypeInterface $type, array $args):  | 
                                                        |
| 263 | 263 |                              ?array { | 
                                                        
| 264 | 264 | $includeDeprecated = $args[0] ?? null;  | 
                                                        
| 265 | 265 | |
@@ -267,7 +267,7 @@ discard block  | 
                                                    ||
| 267 | 267 | $fields = array_values($type->getFields());  | 
                                                        
| 268 | 268 | |
| 269 | 269 |                                      if (!$includeDeprecated) { | 
                                                        
| 270 | -                                        $fields = array_filter($fields, function (Field $field) { | 
                                                        |
| 270 | +                                        $fields = array_filter($fields, function(Field $field) { | 
                                                        |
| 271 | 271 | return !$field->getIsDeprecated();  | 
                                                        
| 272 | 272 | });  | 
                                                        
| 273 | 273 | }  | 
                                                        
@@ -280,13 +280,13 @@ discard block  | 
                                                    ||
| 280 | 280 | ],  | 
                                                        
| 281 | 281 | 'interfaces' => [  | 
                                                        
| 282 | 282 | 'type' => newList(newNonNull(__Type())),  | 
                                                        
| 283 | -                            'resolve' => function (TypeInterface $type): ?array { | 
                                                        |
| 283 | +                            'resolve' => function(TypeInterface $type): ?array { | 
                                                        |
| 284 | 284 | return $type instanceof ObjectType ? $type->getInterfaces() : null;  | 
                                                        
| 285 | 285 | },  | 
                                                        
| 286 | 286 | ],  | 
                                                        
| 287 | 287 | 'possibleTypes' => [  | 
                                                        
| 288 | 288 | 'type' => newList(newNonNull(__Type())),  | 
                                                        
| 289 | - 'resolve' => function (  | 
                                                        |
| 289 | + 'resolve' => function(  | 
                                                        |
| 290 | 290 | TypeInterface $type,  | 
                                                        
| 291 | 291 | array $args,  | 
                                                        
| 292 | 292 | array $context,  | 
                                                        
@@ -304,14 +304,14 @@ discard block  | 
                                                    ||
| 304 | 304 | 'args' => [  | 
                                                        
| 305 | 305 | 'includeDeprecated' => ['type' => Boolean(), 'defaultValue' => false],  | 
                                                        
| 306 | 306 | ],  | 
                                                        
| 307 | -                            'resolve' => function (TypeInterface $type, array $args): ?array { | 
                                                        |
| 307 | +                            'resolve' => function(TypeInterface $type, array $args): ?array { | 
                                                        |
| 308 | 308 | [$includeDeprecated] = $args;  | 
                                                        
| 309 | 309 | |
| 310 | 310 |                                  if ($type instanceof EnumType) { | 
                                                        
| 311 | 311 | $values = array_values($type->getValues());  | 
                                                        
| 312 | 312 | |
| 313 | 313 |                                      if (!$includeDeprecated) { | 
                                                        
| 314 | -                                        $values = array_filter($values, function (Field $field) { | 
                                                        |
| 314 | +                                        $values = array_filter($values, function(Field $field) { | 
                                                        |
| 315 | 315 | return !$field->getIsDeprecated();  | 
                                                        
| 316 | 316 | });  | 
                                                        
| 317 | 317 | }  | 
                                                        
@@ -324,7 +324,7 @@ discard block  | 
                                                    ||
| 324 | 324 | ],  | 
                                                        
| 325 | 325 | 'inputFields' => [  | 
                                                        
| 326 | 326 | 'type' => newList(newNonNull(__InputValue())),  | 
                                                        
| 327 | -                            'resolve' => function (TypeInterface $type): ?array { | 
                                                        |
| 327 | +                            'resolve' => function(TypeInterface $type): ?array { | 
                                                        |
| 328 | 328 | return $type instanceof InputObjectType ? $type->getFields() : null;  | 
                                                        
| 329 | 329 | },  | 
                                                        
| 330 | 330 | ],  | 
                                                        
@@ -334,20 +334,20 @@ discard block  | 
                                                    ||
| 334 | 334 | ]);  | 
                                                        
| 335 | 335 | }, true/* $shared */);  | 
                                                        
| 336 | 336 | |
| 337 | -        $this->container->add(GraphQL::FIELD_INTROSPECTION, function () { | 
                                                        |
| 337 | +        $this->container->add(GraphQL::FIELD_INTROSPECTION, function() { | 
                                                        |
| 338 | 338 | return newObjectType([  | 
                                                        
| 339 | 339 | 'name' => GraphQL::FIELD_INTROSPECTION,  | 
                                                        
| 340 | 340 | 'isIntrospection' => true,  | 
                                                        
| 341 | 341 | 'description' =>  | 
                                                        
| 342 | 342 | 'Object and Interface types are described by a list of Fields, each of ' .  | 
                                                        
| 343 | 343 | 'which has a name, potentially a list of arguments, and a return type.',  | 
                                                        
| 344 | -                'fields'          => function () { | 
                                                        |
| 344 | +                'fields'          => function() { | 
                                                        |
| 345 | 345 | return [  | 
                                                        
| 346 | 346 | 'name' => ['type' => newNonNull(String())],  | 
                                                        
| 347 | 347 | 'description' => ['type' => String()],  | 
                                                        
| 348 | 348 | 'args' => [  | 
                                                        
| 349 | 349 | 'type' => newNonNull(newList(newNonNull(__InputValue()))),  | 
                                                        
| 350 | -                            'resolve' => function (ArgumentsAwareInterface $directive): array { | 
                                                        |
| 350 | +                            'resolve' => function(ArgumentsAwareInterface $directive): array { | 
                                                        |
| 351 | 351 | return $directive->getArguments() ?? [];  | 
                                                        
| 352 | 352 | },  | 
                                                        
| 353 | 353 | ],  | 
                                                        
@@ -359,7 +359,7 @@ discard block  | 
                                                    ||
| 359 | 359 | ]);  | 
                                                        
| 360 | 360 | }, true/* $shared */);  | 
                                                        
| 361 | 361 | |
| 362 | -        $this->container->add(GraphQL::INPUT_VALUE_INTROSPECTION, function () { | 
                                                        |
| 362 | +        $this->container->add(GraphQL::INPUT_VALUE_INTROSPECTION, function() { | 
                                                        |
| 363 | 363 | return newObjectType([  | 
                                                        
| 364 | 364 | 'name' => GraphQL::INPUT_VALUE_INTROSPECTION,  | 
                                                        
| 365 | 365 | 'isIntrospection' => true,  | 
                                                        
@@ -367,7 +367,7 @@ discard block  | 
                                                    ||
| 367 | 367 | 'Arguments provided to Fields or Directives and the input fields of an ' .  | 
                                                        
| 368 | 368 | 'InputObject are represented as Input Values which describe their type ' .  | 
                                                        
| 369 | 369 | 'and optionally a default value.',  | 
                                                        
| 370 | -                'fields'          => function () { | 
                                                        |
| 370 | +                'fields'          => function() { | 
                                                        |
| 371 | 371 | return [  | 
                                                        
| 372 | 372 | 'name' => ['type' => newNonNull(String())],  | 
                                                        
| 373 | 373 | 'description' => ['type' => String()],  | 
                                                        
@@ -377,7 +377,7 @@ discard block  | 
                                                    ||
| 377 | 377 | 'description' =>  | 
                                                        
| 378 | 378 | 'A GraphQL-formatted string representing the default value for this ' .  | 
                                                        
| 379 | 379 | 'input value.',  | 
                                                        
| 380 | -                            'resolve'     => function ($inputValue) { | 
                                                        |
| 380 | +                            'resolve'     => function($inputValue) { | 
                                                        |
| 381 | 381 | // TODO: Implement this when we have support for printing AST.  | 
                                                        
| 382 | 382 | return null;  | 
                                                        
| 383 | 383 | }  | 
                                                        
@@ -387,7 +387,7 @@ discard block  | 
                                                    ||
| 387 | 387 | ]);  | 
                                                        
| 388 | 388 | }, true/* $shared */);  | 
                                                        
| 389 | 389 | |
| 390 | -        $this->container->add(GraphQL::ENUM_VALUE_INTROSPECTION, function () { | 
                                                        |
| 390 | +        $this->container->add(GraphQL::ENUM_VALUE_INTROSPECTION, function() { | 
                                                        |
| 391 | 391 | return newObjectType([  | 
                                                        
| 392 | 392 | 'name' => GraphQL::ENUM_VALUE_INTROSPECTION,  | 
                                                        
| 393 | 393 | 'isIntrospection' => true,  | 
                                                        
@@ -395,7 +395,7 @@ discard block  | 
                                                    ||
| 395 | 395 | 'One possible value for a given Enum. Enum values are unique values, not ' .  | 
                                                        
| 396 | 396 | 'a placeholder for a string or numeric value. However an Enum value is ' .  | 
                                                        
| 397 | 397 | 'returned in a JSON response as a string.',  | 
                                                        
| 398 | -                'fields'          => function () { | 
                                                        |
| 398 | +                'fields'          => function() { | 
                                                        |
| 399 | 399 | return [  | 
                                                        
| 400 | 400 | 'name' => ['type' => newNonNull(String())],  | 
                                                        
| 401 | 401 | 'description' => ['type' => String()],  | 
                                                        
@@ -406,7 +406,7 @@ discard block  | 
                                                    ||
| 406 | 406 | ]);  | 
                                                        
| 407 | 407 | }, true/* $shared */);  | 
                                                        
| 408 | 408 | |
| 409 | -        $this->container->add(GraphQL::TYPE_KIND_INTROSPECTION, function () { | 
                                                        |
| 409 | +        $this->container->add(GraphQL::TYPE_KIND_INTROSPECTION, function() { | 
                                                        |
| 410 | 410 | return newEnumType([  | 
                                                        
| 411 | 411 | 'name' => GraphQL::TYPE_KIND_INTROSPECTION,  | 
                                                        
| 412 | 412 | 'isIntrospection' => true,  | 
                                                        
@@ -446,19 +446,19 @@ discard block  | 
                                                    ||
| 446 | 446 | */  | 
                                                        
| 447 | 447 | protected function registerMetaFields()  | 
                                                        
| 448 | 448 |      { | 
                                                        
| 449 | -        $this->container->add(GraphQL::SCHEMA_META_FIELD_DEFINITION, function ($__Schema) { | 
                                                        |
| 449 | +        $this->container->add(GraphQL::SCHEMA_META_FIELD_DEFINITION, function($__Schema) { | 
                                                        |
| 450 | 450 | return new Field([  | 
                                                        
| 451 | 451 | 'name' => '__schema',  | 
                                                        
| 452 | 452 | 'type' => newNonNull($__Schema),  | 
                                                        
| 453 | 453 | 'description' => 'Access the current type schema of this server.',  | 
                                                        
| 454 | -                'resolve'     => function ($source, $args, $context, ResolveInfo $info): SchemaInterface { | 
                                                        |
| 454 | +                'resolve'     => function($source, $args, $context, ResolveInfo $info): SchemaInterface { | 
                                                        |
| 455 | 455 | return $info->getSchema();  | 
                                                        
| 456 | 456 | }  | 
                                                        
| 457 | 457 | ]);  | 
                                                        
| 458 | 458 | })  | 
                                                        
| 459 | 459 | ->withArgument(GraphQL::SCHEMA_INTROSPECTION);  | 
                                                        
| 460 | 460 | |
| 461 | -        $this->container->add(GraphQL::TYPE_META_FIELD_DEFINITION, function ($__Type) { | 
                                                        |
| 461 | +        $this->container->add(GraphQL::TYPE_META_FIELD_DEFINITION, function($__Type) { | 
                                                        |
| 462 | 462 | return new Field([  | 
                                                        
| 463 | 463 | 'name' => '__type',  | 
                                                        
| 464 | 464 | 'type' => $__Type,  | 
                                                        
@@ -466,7 +466,7 @@ discard block  | 
                                                    ||
| 466 | 466 | 'args' => [  | 
                                                        
| 467 | 467 | 'name' => ['type' => newNonNull(String())],  | 
                                                        
| 468 | 468 | ],  | 
                                                        
| 469 | -                'resolve'     => function ($source, $args, $context, ResolveInfo $info): TypeInterface { | 
                                                        |
| 469 | +                'resolve'     => function($source, $args, $context, ResolveInfo $info): TypeInterface { | 
                                                        |
| 470 | 470 | ['name' => $name] = $args;  | 
                                                        
| 471 | 471 | $schema = $info->getSchema();  | 
                                                        
| 472 | 472 | return $schema->getType($name);  | 
                                                        
@@ -475,12 +475,12 @@ discard block  | 
                                                    ||
| 475 | 475 | })  | 
                                                        
| 476 | 476 | ->withArgument(GraphQL::TYPE_INTROSPECTION);  | 
                                                        
| 477 | 477 | |
| 478 | -        $this->container->add(GraphQL::TYPE_NAME_META_FIELD_DEFINITION, function () { | 
                                                        |
| 478 | +        $this->container->add(GraphQL::TYPE_NAME_META_FIELD_DEFINITION, function() { | 
                                                        |
| 479 | 479 | return new Field([  | 
                                                        
| 480 | 480 | 'name' => '__typename',  | 
                                                        
| 481 | 481 | 'type' => newNonNull(String()),  | 
                                                        
| 482 | 482 | 'description' => 'The name of the current Object type at runtime.',  | 
                                                        
| 483 | -                'resolve'     => function ($source, $args, $context, ResolveInfo $info): string { | 
                                                        |
| 483 | +                'resolve'     => function($source, $args, $context, ResolveInfo $info): string { | 
                                                        |
| 484 | 484 | $parentType = $info->getParentType();  | 
                                                        
| 485 | 485 | return null !== $parentType ? $parentType->getName() : null;  | 
                                                        
| 486 | 486 | }  | 
                                                        
@@ -26,7 +26,7 @@ discard block  | 
                                                    ||
| 26 | 26 | */  | 
                                                        
| 27 | 27 | public function register()  | 
                                                        
| 28 | 28 |      { | 
                                                        
| 29 | -        $this->container->add(GraphQL::INCLUDE_DIRECTIVE, function () { | 
                                                        |
| 29 | +        $this->container->add(GraphQL::INCLUDE_DIRECTIVE, function() { | 
                                                        |
| 30 | 30 | return newDirective([  | 
                                                        
| 31 | 31 | 'name' => 'include',  | 
                                                        
| 32 | 32 | 'description' =>  | 
                                                        
@@ -46,7 +46,7 @@ discard block  | 
                                                    ||
| 46 | 46 | ]);  | 
                                                        
| 47 | 47 | }, true/* $shared */);  | 
                                                        
| 48 | 48 | |
| 49 | -        $this->container->add(GraphQL::SKIP_DIRECTIVE, function () { | 
                                                        |
| 49 | +        $this->container->add(GraphQL::SKIP_DIRECTIVE, function() { | 
                                                        |
| 50 | 50 | return newDirective([  | 
                                                        
| 51 | 51 | 'name' => 'skip',  | 
                                                        
| 52 | 52 | 'description' =>  | 
                                                        
@@ -66,7 +66,7 @@ discard block  | 
                                                    ||
| 66 | 66 | ]);  | 
                                                        
| 67 | 67 | }, true/* $shared */);  | 
                                                        
| 68 | 68 | |
| 69 | -        $this->container->add(GraphQL::DEPRECATED_DIRECTIVE, function () { | 
                                                        |
| 69 | +        $this->container->add(GraphQL::DEPRECATED_DIRECTIVE, function() { | 
                                                        |
| 70 | 70 | return newDirective([  | 
                                                        
| 71 | 71 | 'name' => 'deprecated',  | 
                                                        
| 72 | 72 | 'description' => 'Marks an element of a GraphQL schema as no longer supported.',  | 
                                                        
@@ -33,17 +33,17 @@ discard block  | 
                                                    ||
| 33 | 33 | */  | 
                                                        
| 34 | 34 | public function register()  | 
                                                        
| 35 | 35 |      { | 
                                                        
| 36 | -        $this->container->add(GraphQL::BOOLEAN, function (BooleanCoercer $coercer) { | 
                                                        |
| 36 | +        $this->container->add(GraphQL::BOOLEAN, function(BooleanCoercer $coercer) { | 
                                                        |
| 37 | 37 | return newScalarType([  | 
                                                        
| 38 | 38 | 'name' => TypeNameEnum::BOOLEAN,  | 
                                                        
| 39 | 39 | 'description' => 'The `Boolean` scalar type represents `true` or `false`.',  | 
                                                        
| 40 | -                'serialize'    => function ($value) use ($coercer) { | 
                                                        |
| 40 | +                'serialize'    => function($value) use ($coercer) { | 
                                                        |
| 41 | 41 | return $coercer->coerce($value);  | 
                                                        
| 42 | 42 | },  | 
                                                        
| 43 | -                'parseValue'   => function ($value) use ($coercer) { | 
                                                        |
| 43 | +                'parseValue'   => function($value) use ($coercer) { | 
                                                        |
| 44 | 44 | return $coercer->coerce($value);  | 
                                                        
| 45 | 45 | },  | 
                                                        
| 46 | -                'parseLiteral' => function (NodeInterface $node) { | 
                                                        |
| 46 | +                'parseLiteral' => function(NodeInterface $node) { | 
                                                        |
| 47 | 47 |                      if ($node instanceof BooleanValueNode) { | 
                                                        
| 48 | 48 | return $node->getValue();  | 
                                                        
| 49 | 49 | }  | 
                                                        
@@ -53,20 +53,20 @@ discard block  | 
                                                    ||
| 53 | 53 | }, true/* $shared */)  | 
                                                        
| 54 | 54 | ->withArgument(BooleanCoercer::class);  | 
                                                        
| 55 | 55 | |
| 56 | -        $this->container->add(GraphQL::FLOAT, function (FloatCoercer $coercer) { | 
                                                        |
| 56 | +        $this->container->add(GraphQL::FLOAT, function(FloatCoercer $coercer) { | 
                                                        |
| 57 | 57 | return newScalarType([  | 
                                                        
| 58 | 58 | 'name' => TypeNameEnum::FLOAT,  | 
                                                        
| 59 | 59 | 'description' =>  | 
                                                        
| 60 | 60 | 'The `Float` scalar type represents signed double-precision fractional ' .  | 
                                                        
| 61 | 61 | 'values as specified by ' .  | 
                                                        
| 62 | 62 | '[IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).',  | 
                                                        
| 63 | -                'serialize'    => function ($value) use ($coercer) { | 
                                                        |
| 63 | +                'serialize'    => function($value) use ($coercer) { | 
                                                        |
| 64 | 64 | return $coercer->coerce($value);  | 
                                                        
| 65 | 65 | },  | 
                                                        
| 66 | -                'parseValue'   => function ($value) use ($coercer) { | 
                                                        |
| 66 | +                'parseValue'   => function($value) use ($coercer) { | 
                                                        |
| 67 | 67 | return $coercer->coerce($value);  | 
                                                        
| 68 | 68 | },  | 
                                                        
| 69 | -                'parseLiteral' => function (NodeInterface $node) { | 
                                                        |
| 69 | +                'parseLiteral' => function(NodeInterface $node) { | 
                                                        |
| 70 | 70 |                      if ($node instanceof FloatValueNode || $node instanceof IntValueNode) { | 
                                                        
| 71 | 71 | return $node->getValue();  | 
                                                        
| 72 | 72 | }  | 
                                                        
@@ -76,19 +76,19 @@ discard block  | 
                                                    ||
| 76 | 76 | }, true/* $shared */)  | 
                                                        
| 77 | 77 | ->withArgument(FloatCoercer::class);  | 
                                                        
| 78 | 78 | |
| 79 | -        $this->container->add(GraphQL::INT, function (IntCoercer $coercer) { | 
                                                        |
| 79 | +        $this->container->add(GraphQL::INT, function(IntCoercer $coercer) { | 
                                                        |
| 80 | 80 | return newScalarType([  | 
                                                        
| 81 | 81 | 'name' => TypeNameEnum::INT,  | 
                                                        
| 82 | 82 | 'description' =>  | 
                                                        
| 83 | 83 | 'The `Int` scalar type represents non-fractional signed whole numeric ' .  | 
                                                        
| 84 | 84 | 'values. Int can represent values between -(2^31) and 2^31 - 1.',  | 
                                                        
| 85 | -                'serialize'    => function ($value) use ($coercer) { | 
                                                        |
| 85 | +                'serialize'    => function($value) use ($coercer) { | 
                                                        |
| 86 | 86 | return $coercer->coerce($value);  | 
                                                        
| 87 | 87 | },  | 
                                                        
| 88 | -                'parseValue'   => function ($value) use ($coercer) { | 
                                                        |
| 88 | +                'parseValue'   => function($value) use ($coercer) { | 
                                                        |
| 89 | 89 | return $coercer->coerce($value);  | 
                                                        
| 90 | 90 | },  | 
                                                        
| 91 | -                'parseLiteral' => function (NodeInterface $node) { | 
                                                        |
| 91 | +                'parseLiteral' => function(NodeInterface $node) { | 
                                                        |
| 92 | 92 |                      if ($node instanceof IntValueNode) { | 
                                                        
| 93 | 93 | $value = (int)$node->getValue();  | 
                                                        
| 94 | 94 | if ((string)$node->getValue() === (string)$value &&  | 
                                                        
@@ -102,7 +102,7 @@ discard block  | 
                                                    ||
| 102 | 102 | }, true/* $shared */)  | 
                                                        
| 103 | 103 | ->withArgument(IntCoercer::class);  | 
                                                        
| 104 | 104 | |
| 105 | -        $this->container->add(GraphQL::ID, function (StringCoercer $coercer) { | 
                                                        |
| 105 | +        $this->container->add(GraphQL::ID, function(StringCoercer $coercer) { | 
                                                        |
| 106 | 106 | return newScalarType([  | 
                                                        
| 107 | 107 | 'name' => TypeNameEnum::ID,  | 
                                                        
| 108 | 108 | 'description' =>  | 
                                                        
@@ -111,13 +111,13 @@ discard block  | 
                                                    ||
| 111 | 111 | 'response as a String; however, it is not intended to be human-readable. ' .  | 
                                                        
| 112 | 112 | 'When expected as an input type, any string (such as `"4"`) or integer ' .  | 
                                                        
| 113 | 113 | '(such as `4`) input value will be accepted as an ID.',  | 
                                                        
| 114 | -                'serialize'    => function ($value) use ($coercer) { | 
                                                        |
| 114 | +                'serialize'    => function($value) use ($coercer) { | 
                                                        |
| 115 | 115 | return $coercer->coerce($value);  | 
                                                        
| 116 | 116 | },  | 
                                                        
| 117 | -                'parseValue'   => function ($value) use ($coercer) { | 
                                                        |
| 117 | +                'parseValue'   => function($value) use ($coercer) { | 
                                                        |
| 118 | 118 | return $coercer->coerce($value);  | 
                                                        
| 119 | 119 | },  | 
                                                        
| 120 | -                'parseLiteral' => function (NodeInterface $node) { | 
                                                        |
| 120 | +                'parseLiteral' => function(NodeInterface $node) { | 
                                                        |
| 121 | 121 |                      if ($node instanceof StringValueNode || $node instanceof IntValueNode) { | 
                                                        
| 122 | 122 | return $node->getValue();  | 
                                                        
| 123 | 123 | }  | 
                                                        
@@ -127,20 +127,20 @@ discard block  | 
                                                    ||
| 127 | 127 | }, true/* $shared */)  | 
                                                        
| 128 | 128 | ->withArgument(StringCoercer::class);  | 
                                                        
| 129 | 129 | |
| 130 | -        $this->container->add(GraphQL::STRING, function (StringCoercer $coercer) { | 
                                                        |
| 130 | +        $this->container->add(GraphQL::STRING, function(StringCoercer $coercer) { | 
                                                        |
| 131 | 131 | return newScalarType([  | 
                                                        
| 132 | 132 | 'name' => TypeNameEnum::STRING,  | 
                                                        
| 133 | 133 | 'description' =>  | 
                                                        
| 134 | 134 | 'The `String` scalar type represents textual data, represented as UTF-8 ' .  | 
                                                        
| 135 | 135 | 'character sequences. The String type is most often used by GraphQL to ' .  | 
                                                        
| 136 | 136 | 'represent free-form human-readable text.',  | 
                                                        
| 137 | -                'serialize'    => function ($value) use ($coercer) { | 
                                                        |
| 137 | +                'serialize'    => function($value) use ($coercer) { | 
                                                        |
| 138 | 138 | return $coercer->coerce($value);  | 
                                                        
| 139 | 139 | },  | 
                                                        
| 140 | -                'parseValue'   => function ($value) use ($coercer) { | 
                                                        |
| 140 | +                'parseValue'   => function($value) use ($coercer) { | 
                                                        |
| 141 | 141 | return $coercer->coerce($value);  | 
                                                        
| 142 | 142 | },  | 
                                                        
| 143 | -                'parseLiteral' => function (NodeInterface $node) { | 
                                                        |
| 143 | +                'parseLiteral' => function(NodeInterface $node) { | 
                                                        |
| 144 | 144 |                      if ($node instanceof StringValueNode) { | 
                                                        
| 145 | 145 | return $node->getValue();  | 
                                                        
| 146 | 146 | }  |