Fix namespace name, use variable issues
parent
54f385f9ec
commit
65686c6d4c
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?php
|
||||||
|
namespace A \ B;
|
Loading…
Reference in New Issue