From b8a113ddd0cf798d48727a82b24781c3369d4fc5 Mon Sep 17 00:00:00 2001 From: Felix Becker Date: Tue, 13 Dec 2016 02:40:39 +0100 Subject: [PATCH] Correct reference collection for New_ nodes Closes #202 --- fixtures/references.php | 2 +- src/DefinitionResolver.php | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/fixtures/references.php b/fixtures/references.php index 2ac1a63..4a34698 100644 --- a/fixtures/references.php +++ b/fixtures/references.php @@ -2,7 +2,7 @@ namespace TestNamespace; -$obj = new TestClass(); +$obj = new TestClass($a, $b, $c); $obj->testMethod(); echo $obj->testProperty; TestClass::staticTestMethod(); diff --git a/src/DefinitionResolver.php b/src/DefinitionResolver.php index a2f30e4..e2b7212 100644 --- a/src/DefinitionResolver.php +++ b/src/DefinitionResolver.php @@ -195,6 +195,7 @@ class DefinitionResolver || $parent instanceof Node\Namespace_ || $parent instanceof Node\Param || $parent instanceof Node\FunctionLike + || $parent instanceof Node\Expr\New_ || $parent instanceof Node\Expr\StaticCall || $parent instanceof Node\Expr\ClassConstFetch || $parent instanceof Node\Expr\StaticPropertyFetch @@ -212,13 +213,6 @@ class DefinitionResolver } else if ($grandParent instanceof Node\Stmt\Use_ && $grandParent->type === Node\Stmt\Use_::TYPE_FUNCTION) { $name .= '()'; } - // Only the name node should be considered a reference, not the New_ node itself - } else if ($parent instanceof Node\Expr\New_) { - if (!($parent->class instanceof Node\Name)) { - // Cannot get definition of dynamic calls - return null; - } - $name = (string)$parent->class; } else if ($node instanceof Node\Expr\MethodCall || $node instanceof Node\Expr\PropertyFetch) { if ($node->name instanceof Node\Expr) { // Cannot get definition if right-hand side is expression