1
0
Fork 0

Fix namespace name, use variable issues

pull/357/head
Sara Itani 2017-04-16 16:32:38 -07:00
parent 54f385f9ec
commit 65686c6d4c
4 changed files with 11 additions and 10 deletions

View File

@ -777,9 +777,6 @@ class DefinitionResolver implements DefinitionResolverInterface
&& !empty($varTags = $docBlock->getTagsByName('var')) && !empty($varTags = $docBlock->getTagsByName('var'))
&& ($type = $varTags[0]->getType()) && ($type = $varTags[0]->getType())
) { ) {
if ((string)$type === "\\TestNamespace\\TestClass") {
var_dump($type);
}
return $type; return $type;
} }
// Resolve the expression // Resolve the expression

View File

@ -220,7 +220,6 @@ class TextDocument
if ($descendantNode instanceof Tolerant\Node\Expression\Variable && if ($descendantNode instanceof Tolerant\Node\Expression\Variable &&
$descendantNode->getName() === $node->getName() $descendantNode->getName() === $node->getName()
) { ) {
var_dump($descendantNode->getName());
$locations[] = Location::fromNode($descendantNode); $locations[] = Location::fromNode($descendantNode);
} }
} }

View File

@ -501,7 +501,7 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface
// When a use is passed, start outside the closure to not return immediately // When a use is passed, start outside the closure to not return immediately
// Use variable vs variable parsing? // Use variable vs variable parsing?
if ($var instanceof Tolerant\Node\UseVariableName) { if ($var instanceof Tolerant\Node\UseVariableName) {
$n = $var->getFirstAncestor(Tolerant\Node\Expression\AnonymousFunctionCreationExpression::class); $n = $var->getFirstAncestor(Tolerant\Node\Expression\AnonymousFunctionCreationExpression::class)->parent;
$name = $var->getName(); $name = $var->getName();
} else if ($var instanceof Tolerant\Node\Expression\Variable || $var instanceof Tolerant\Node\Parameter) { } else if ($var instanceof Tolerant\Node\Expression\Variable || $var instanceof Tolerant\Node\Parameter) {
$name = $var->getName(); $name = $var->getName();
@ -521,8 +521,11 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface
} }
} }
// If it is a closure, also check use statements // If it is a closure, also check use statements
if ($n instanceof Tolerant\Node\Expression\AnonymousFunctionCreationExpression && $n->anonymousFunctionUseClause !== null && $n->anonymousFunctionUseClause->useVariableNameList !== null) { if ($n instanceof Tolerant\Node\Expression\AnonymousFunctionCreationExpression &&
foreach ($n->anonymousFunctionUseClause->useVariableNameList->getElements() as $use) { $n->anonymousFunctionUseClause !== null &&
$n->anonymousFunctionUseClause->useVariableNameList !== null) {
foreach ($n->anonymousFunctionUseClause->useVariableNameList->getElements() as $use
) {
if ($use->getName() === $name) { if ($use->getName() === $name) {
return $use; return $use;
} }
@ -587,7 +590,7 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface
} }
// Find variable definition // Find variable definition
$defNode = $this->resolveVariableToNode($expr); $defNode = $this->resolveVariableToNode($expr);
if ($defNode instanceof Tolerant\Node\Expression) { if ($defNode instanceof Tolerant\Node\Expression || $defNode instanceof Tolerant\Node\UseVariableName) {
return $this->resolveExpressionNodeToType($defNode); return $this->resolveExpressionNodeToType($defNode);
} }
if ($defNode instanceof Tolerant\Node\Parameter) { if ($defNode instanceof Tolerant\Node\Parameter) {
@ -874,7 +877,7 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface
return new Types\Object_; return new Types\Object_;
} }
$className = (string)$class->getResolvedName(); $className = (string)$class->getResolvedName();
var_dump($className);
if ($className === 'static') { if ($className === 'static') {
return new Types\Static_; return new Types\Static_;
} }
@ -1056,7 +1059,7 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface
// INPUT OUTPUT: // INPUT OUTPUT:
// namespace A\B; A\B // namespace A\B; A\B
else if ($node instanceof Tolerant\Node\Statement\NamespaceDefinition && $node->name instanceof Tolerant\Node\QualifiedName) { else if ($node instanceof Tolerant\Node\Statement\NamespaceDefinition && $node->name instanceof Tolerant\Node\QualifiedName) {
return (string) $node->name; return (string) Tolerant\ResolvedName::buildName($node->name->nameParts, $node->getFileContents());
} }
// INPUT OUTPUT: // INPUT OUTPUT:
// namespace A\B; // namespace A\B;

View File

@ -0,0 +1,2 @@
<?php
namespace A \ B;