1
0
Fork 0

Added completion support to type hinted local variables.

pull/701/head
Julian Schwuchow 2019-01-25 15:04:13 +01:00
parent 9dc1656592
commit ab5333ff74
1 changed files with 14 additions and 0 deletions

View File

@ -822,8 +822,22 @@ class DefinitionResolver
} }
// ASSIGNMENT EXPRESSION // ASSIGNMENT EXPRESSION
// first var tag will be used to resolve the type if present
// otherwise
// $a = $myExpression => resolves to the type of the right-hand operand // $a = $myExpression => resolves to the type of the right-hand operand
if ($expr instanceof Node\Expression\AssignmentExpression) { if ($expr instanceof Node\Expression\AssignmentExpression) {
$declarationNode =
ParserHelpers\tryGetPropertyDeclaration($expr) ??
ParserHelpers\tryGetConstOrClassConstDeclaration($expr);
$declarationNode = $declarationNode ?? $expr;
if (
($docBlock = $this->getDocBlock($declarationNode))
&& !empty($varTags = $docBlock->getTagsByName('var'))
&& ($type = $varTags[0]->getType())
) {
return $type;
}
return $this->resolveExpressionNodeToType($expr->rightOperand); return $this->resolveExpressionNodeToType($expr->rightOperand);
} }