Support PHP7.1 nullable types
parent
d5c54ac30f
commit
cbc6966c92
|
@ -701,11 +701,21 @@ class DefinitionResolver
|
|||
* If it is unknown, will be Types\Mixed.
|
||||
* Returns null if the node does not have a type.
|
||||
*
|
||||
* @param Node $node
|
||||
* @param Node|string $node
|
||||
* @return \phpDocumentor\Type|null
|
||||
*/
|
||||
public function getTypeFromNode(Node $node)
|
||||
public function getTypeFromNode($node)
|
||||
{
|
||||
if (is_string($node)) {
|
||||
// Resolve a string like "bool" to a type object
|
||||
return $this->typeResolver->resolve($node->returnType);
|
||||
}
|
||||
if ($node instanceof Node\Name) {
|
||||
return new Types\Object_(new Fqsen('\\' . (string)$node));
|
||||
}
|
||||
if ($node instanceof Node\NullableType) {
|
||||
return new Types\Compound([new Types\Null_, $this->getTypeFromNode($node->type)]);
|
||||
}
|
||||
if ($node instanceof Node\Param) {
|
||||
// Parameters
|
||||
$docBlock = $node->getAttribute('parentNode')->getAttribute('docBlock');
|
||||
|
@ -722,12 +732,7 @@ class DefinitionResolver
|
|||
}
|
||||
if ($node->type !== null) {
|
||||
// Use PHP7 return type hint
|
||||
if (is_string($node->type)) {
|
||||
// Resolve a string like "bool" to a type object
|
||||
$type = $this->typeResolver->resolve($node->type);
|
||||
} else {
|
||||
$type = new Types\Object_(new Fqsen('\\' . (string)$node->type));
|
||||
}
|
||||
return $this->getTypeFromNode($node->type);
|
||||
}
|
||||
if ($node->default !== null) {
|
||||
$defaultType = $this->resolveExpressionNodeToType($node->default);
|
||||
|
@ -751,12 +756,7 @@ class DefinitionResolver
|
|||
return $returnTags[0]->getType();
|
||||
}
|
||||
if ($node->returnType !== null) {
|
||||
// Use PHP7 return type hint
|
||||
if (is_string($node->returnType)) {
|
||||
// Resolve a string like "bool" to a type object
|
||||
return $this->typeResolver->resolve($node->returnType);
|
||||
}
|
||||
return new Types\Object_(new Fqsen('\\' . (string)$node->returnType));
|
||||
return $this->getTypeFromNode($node->returnType);
|
||||
}
|
||||
// Unknown return type
|
||||
return new Types\Mixed;
|
||||
|
|
Loading…
Reference in New Issue