*/ final class ReturnTypeResolver implements NodeTypeResolverInterface { /** * @var \Rector\NodeTypeResolver\NodeTypeResolver */ private $nodeTypeResolver; /** * @required */ public function autowire(NodeTypeResolver $nodeTypeResolver) : void { $this->nodeTypeResolver = $nodeTypeResolver; } /** * @return array> */ public function getNodeClasses() : array { return [Return_::class]; } /** * @param Return_ $node */ public function resolve(Node $node) : Type { if (!$node->expr instanceof Expr) { return new VoidType(); } return $this->nodeTypeResolver->getType($node->expr); } }