moved this autocomplete fix to DefinitionResolver
parent
618f060648
commit
975485535e
|
@ -140,18 +140,9 @@ class CompletionProvider
|
|||
) {
|
||||
// If the name is an Error node, just filter by the class
|
||||
if ($node instanceof Node\Expr\MethodCall || $node instanceof Node\Expr\PropertyFetch) {
|
||||
// For instances, resolve the variable type
|
||||
$classNode = null;
|
||||
if ($node->var instanceof Node\Expr\Variable && $node->var->name === 'this') {
|
||||
$classNode = getClosestNode($node, Node\Stmt\Class_::class);
|
||||
}
|
||||
if ($classNode !== null && !$classNode->isAnonymous()) {
|
||||
$prefixes = [(string)$classNode->namespacedName];
|
||||
} else {
|
||||
$prefixes = DefinitionResolver::getFqnsFromType(
|
||||
$this->definitionResolver->resolveExpressionNodeToType($node->var)
|
||||
);
|
||||
}
|
||||
$prefixes = DefinitionResolver::getFqnsFromType(
|
||||
$this->definitionResolver->resolveExpressionNodeToType($node->var)
|
||||
);
|
||||
} else {
|
||||
// Static member reference
|
||||
$prefixes = [$node->class instanceof Node\Name ? (string)$node->class : ''];
|
||||
|
|
|
@ -417,6 +417,10 @@ class DefinitionResolver
|
|||
{
|
||||
if ($expr instanceof Node\Expr\Variable || $expr instanceof Node\Expr\ClosureUse) {
|
||||
if ($expr instanceof Node\Expr\Variable && $expr->name === 'this') {
|
||||
$classNode = getClosestNode($expr, Node\Stmt\Class_::class);
|
||||
if ($classNode) {
|
||||
return self::resolveClassNameToType($classNode->namespacedName);
|
||||
}
|
||||
return new Types\This;
|
||||
}
|
||||
// Find variable definition
|
||||
|
|
Loading…
Reference in New Issue