Skip to content

Reify AST node types and remove unneeded nullability #751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -310,11 +310,6 @@ parameters:
count: 1
path: src/Utils/ASTDefinitionBuilder.php

-
message: "#^Only booleans are allowed in a ternary operator condition, GraphQL\\\\Language\\\\AST\\\\NodeList\\<GraphQL\\\\Language\\\\AST\\\\EnumValueDefinitionNode\\>\\|null given\\.$#"
count: 1
path: src/Utils/ASTDefinitionBuilder.php

-
message: "#^Only booleans are allowed in &&, array\\<bool\\>\\|null given on the left side\\.$#"
count: 1
Expand Down
2 changes: 1 addition & 1 deletion src/Language/AST/EnumTypeDefinitionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class EnumTypeDefinitionNode extends Node implements TypeDefinitionNode
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<EnumValueDefinitionNode>|null */
/** @var NodeList<EnumValueDefinitionNode> */
public $values;

/** @var StringValueNode|null */
Expand Down
4 changes: 2 additions & 2 deletions src/Language/AST/EnumTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ class EnumTypeExtensionNode extends Node implements TypeExtensionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<EnumValueDefinitionNode>|null */
/** @var NodeList<EnumValueDefinitionNode> */
public $values;
}
4 changes: 2 additions & 2 deletions src/Language/AST/FieldNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ class FieldNode extends Node implements SelectionNode
/** @var NameNode|null */
public $alias;

/** @var NodeList<ArgumentNode>|null */
/** @var NodeList<ArgumentNode> */
public $arguments;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var SelectionSetNode|null */
Expand Down
2 changes: 1 addition & 1 deletion src/Language/AST/InlineFragmentNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class InlineFragmentNode extends Node implements SelectionNode
/** @var NamedTypeNode */
public $typeCondition;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var SelectionSetNode */
Expand Down
4 changes: 2 additions & 2 deletions src/Language/AST/InputObjectTypeDefinitionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ class InputObjectTypeDefinitionNode extends Node implements TypeDefinitionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<InputValueDefinitionNode>|null */
/** @var NodeList<InputValueDefinitionNode> */
public $fields;

/** @var StringValueNode|null */
Expand Down
4 changes: 2 additions & 2 deletions src/Language/AST/InputObjectTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ class InputObjectTypeExtensionNode extends Node implements TypeExtensionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<InputValueDefinitionNode>|null */
/** @var NodeList<InputValueDefinitionNode> */
public $fields;
}
6 changes: 3 additions & 3 deletions src/Language/AST/InterfaceTypeDefinitionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ class InterfaceTypeDefinitionNode extends Node implements TypeDefinitionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<InterfaceTypeDefinitionNode> */
/** @var NodeList<NamedTypeNode> */
public $interfaces;

/** @var NodeList<FieldDefinitionNode>|null */
/** @var NodeList<FieldDefinitionNode> */
public $fields;

/** @var StringValueNode|null */
Expand Down
4 changes: 2 additions & 2 deletions src/Language/AST/InterfaceTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ class InterfaceTypeExtensionNode extends Node implements TypeExtensionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<InterfaceTypeDefinitionNode> */
public $interfaces;

/** @var NodeList<FieldDefinitionNode>|null */
/** @var NodeList<FieldDefinitionNode> */
public $fields;
}
4 changes: 2 additions & 2 deletions src/Language/AST/Location.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ class Location
/**
* The Token at which this Node begins.
*
* @var Token
* @var Token|null
*/
public $startToken;

/**
* The Token at which this Node ends.
*
* @var Token
* @var Token|null
*/
public $endToken;

Expand Down
2 changes: 1 addition & 1 deletion src/Language/AST/ObjectTypeDefinitionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ObjectTypeDefinitionNode extends Node implements TypeDefinitionNode
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<FieldDefinitionNode>|null */
/** @var NodeList<FieldDefinitionNode> */
public $fields;

/** @var StringValueNode|null */
Expand Down
2 changes: 1 addition & 1 deletion src/Language/AST/ScalarTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ class ScalarTypeExtensionNode extends Node implements TypeExtensionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;
}
4 changes: 2 additions & 2 deletions src/Language/AST/SchemaTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class SchemaTypeExtensionNode extends Node implements TypeExtensionNode
/** @var string */
public $kind = NodeKind::SCHEMA_EXTENSION;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<OperationTypeDefinitionNode>|null */
/** @var NodeList<OperationTypeDefinitionNode> */
public $operationTypes;
}
2 changes: 1 addition & 1 deletion src/Language/AST/StringValueNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ class StringValueNode extends Node implements ValueNode
/** @var string */
public $value;

/** @var bool|null */
/** @var bool */
public $block;
}
2 changes: 1 addition & 1 deletion src/Language/AST/UnionTypeDefinitionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class UnionTypeDefinitionNode extends Node implements TypeDefinitionNode
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<NamedTypeNode>|null */
/** @var NodeList<NamedTypeNode> */
public $types;

/** @var StringValueNode|null */
Expand Down
4 changes: 2 additions & 2 deletions src/Language/AST/UnionTypeExtensionNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ class UnionTypeExtensionNode extends Node implements TypeExtensionNode
/** @var NameNode */
public $name;

/** @var NodeList<DirectiveNode>|null */
/** @var NodeList<DirectiveNode> */
public $directives;

/** @var NodeList<NamedTypeNode>|null */
/** @var NodeList<NamedTypeNode> */
public $types;
}
7 changes: 4 additions & 3 deletions src/Language/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -629,8 +629,9 @@ private function parseVariableDefinition() : VariableDefinitionNode
return new VariableDefinitionNode([
'variable' => $var,
'type' => $type,
'defaultValue' =>
($this->skip(Token::EQUALS) ? $this->parseValueLiteral(true) : null),
'defaultValue' => $this->skip(Token::EQUALS)
? $this->parseValueLiteral(true)
: null,
'directives' => $this->parseDirectives(true),
'loc' => $this->loc($start),
]);
Expand Down Expand Up @@ -1553,7 +1554,7 @@ private function parseSchemaTypeExtension() : SchemaTypeExtensionNode
[$this, 'parseOperationTypeDefinition'],
Token::BRACE_R
)
: [];
: new NodeList([]);
if (count($directives) === 0 && count($operationTypes) === 0) {
$this->unexpected();
}
Expand Down
4 changes: 2 additions & 2 deletions src/Type/Schema.php
Original file line number Diff line number Diff line change
Expand Up @@ -204,11 +204,11 @@ private function resolveAdditionalTypes()
*
* This operation requires full schema scan. Do not use in production environment.
*
* @return Type[]
* @return array<string, Type>
*
* @api
*/
public function getTypeMap()
public function getTypeMap() : array
{
if (! $this->fullyLoaded) {
$this->resolvedTypes = $this->collectAllTypes();
Expand Down
Loading