From 35ce3af324ec4c94f33af3722a0946a3d6530044 Mon Sep 17 00:00:00 2001 From: Sara Itani Date: Wed, 12 Apr 2017 12:51:24 -0700 Subject: [PATCH] fix issue where call expression references weren't being properly indexed --- src/TolerantDefinitionResolver.php | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/src/TolerantDefinitionResolver.php b/src/TolerantDefinitionResolver.php index dde12d5..b2a4a4e 100644 --- a/src/TolerantDefinitionResolver.php +++ b/src/TolerantDefinitionResolver.php @@ -306,32 +306,11 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface // does this work for function calls? return $name; } - /*elseif ($node instanceof Tolerant\Node\Expression\CallExpression || ($node = $node->getFirstAncestor(Tolerant\Node\Expression\CallExpression::class)) !== null) { - if ($node->callableExpression instanceof Tolerant\Node\Expression\ScopedPropertyAccessExpression) { - $qualifier = $node->callableExpression->scopeResolutionQualifier; - if ($qualifier instanceof Tolerant\Token) { - // resolve this/self/parent - } elseif ($qualifier instanceof Tolerant\Node\QualifiedName) { - $name = $qualifier->getResolvedName() ?? $qualifier->getNamespacedName(); - $name .= "::"; - $memberName = $node->callableExpression->memberName; - if ($memberName instanceof Tolerant\Token) { - $name .= $memberName->getText($node->getFileContents()); - } elseif ($memberName instanceof Tolerant\Node\Expression\Variable) { - $name .= $memberName->getText(); - } else { - return null; - } - $name .= "()"; - return $name; - } - } - }*/ else if ( ($node instanceof Tolerant\Node\Expression\CallExpression && - ($access = $node->callableExpression) instanceof Tolerant\Node\Expression\MemberAccessExpression) || ( - ($access = $node) instanceof Tolerant\Node\Expression\MemberAccessExpression) + ($access = $node->callableExpression) instanceof Tolerant\Node\Expression\MemberAccessExpression) + || (($access = $node) instanceof Tolerant\Node\Expression\MemberAccessExpression) ) { if ($access->memberName instanceof Tolerant\Node\Expression) { // Cannot get definition if right-hand side is expression @@ -373,7 +352,8 @@ class TolerantDefinitionResolver implements DefinitionResolverInterface // var_dump($classFqn); } $memberSuffix = '->' . (string)($access->memberName->getText() ?? $access->memberName->getText($node->getFileContents())); - if ($node instanceof Tolerant\Node\Expression\CallExpression) { + if ($node instanceof Tolerant\Node\Expression\CallExpression || $node->parent instanceof Tolerant\Node\Expression\CallExpression) { + // TODO - this is redundant $memberSuffix .= '()'; } // Find the right class that implements the member