NodeTypeResolver - misc detail fixes

This commit is contained in:
Tomas Votruba 2018-06-13 13:12:29 +02:00
parent 7231bfdc1a
commit d11887436d
2 changed files with 7 additions and 7 deletions

View File

@ -98,13 +98,8 @@ final class AssignTypeResolver implements PerNodeTypeResolverInterface, NodeType
return $this->processAssignVariableNode($assignNode);
}
// $var = $this->someMethod();
if ($assignNode->expr instanceof MethodCall) {
return $this->nodeTypeResolver->resolve($assignNode->expr);
}
// $var = new (...);
if ($assignNode->expr instanceof New_) {
// $var = $this->someMethod(); || $var = new (...);
if ($assignNode->expr instanceof MethodCall || $assignNode->expr instanceof New_) {
return $this->nodeTypeResolver->resolve($assignNode->expr);
}

View File

@ -3,6 +3,7 @@
namespace Rector\NodeTypeResolver\PerNodeTypeResolver;
use PhpParser\Node;
use PhpParser\Node\Expr\Assign;
use PhpParser\Node\Expr\Variable;
use Rector\Node\Attribute;
use Rector\NodeTypeResolver\Contract\NodeTypeResolverAwareInterface;
@ -60,6 +61,10 @@ final class VariableTypeResolver implements PerNodeTypeResolverInterface, NodeTy
return $variableTypes;
}
if ($variableNode->getAttribute(Attribute::PARENT_NODE) instanceof Assign) {
return $this->nodeTypeResolver->resolve($variableNode->getAttribute(Attribute::PARENT_NODE));
}
return [];
}