1
0
Fork 0

fix return type resolution issue

pull/357/head
Sara Itani 2017-04-20 00:58:26 -07:00
parent 347a5a12ae
commit 223a2eac6c
2 changed files with 27 additions and 13 deletions

View File

@ -7,27 +7,28 @@ use Microsoft\PhpParser as Tolerant;
class TolerantParserHelpers { class TolerantParserHelpers {
public static function isConstantFetch(Tolerant\Node $node) : bool { public static function isConstantFetch(Tolerant\Node $node) : bool {
$parent = $node->parent;
return return
( (
$node instanceof Tolerant\Node\QualifiedName && $node instanceof Tolerant\Node\QualifiedName &&
( (
// $node->parent instanceof Tolerant\Node\Statement\ExpressionStatement || // $node->parent instanceof Tolerant\Node\Statement\ExpressionStatement ||
$node->parent instanceof Tolerant\Node\Expression || $parent instanceof Tolerant\Node\Expression ||
$node->parent instanceof Tolerant\Node\DelimitedList\ExpressionList || $parent instanceof Tolerant\Node\DelimitedList\ExpressionList ||
$node->parent instanceof Tolerant\Node\ArrayElement || $parent instanceof Tolerant\Node\ArrayElement ||
($node->parent instanceof Tolerant\Node\Parameter && $node->parent->default === $node) || ($parent instanceof Tolerant\Node\Parameter && $node->parent->default === $node) ||
$node->parent instanceof Tolerant\Node\StatementNode || $parent instanceof Tolerant\Node\StatementNode ||
$node->parent instanceof Tolerant\Node\CaseStatementNode $parent instanceof Tolerant\Node\CaseStatementNode
) && ) &&
!( !(
$node->parent instanceof Tolerant\Node\Expression\MemberAccessExpression || $parent instanceof Tolerant\Node\Expression\MemberAccessExpression ||
$node->parent instanceof Tolerant\Node\Expression\CallExpression || $parent instanceof Tolerant\Node\Expression\CallExpression ||
$node->parent instanceof Tolerant\Node\Expression\ObjectCreationExpression || $parent instanceof Tolerant\Node\Expression\ObjectCreationExpression ||
$node->parent instanceof Tolerant\Node\Expression\ScopedPropertyAccessExpression || $parent instanceof Tolerant\Node\Expression\ScopedPropertyAccessExpression ||
$node->parent instanceof Tolerant\Node\Expression\AnonymousFunctionCreationExpression || self::isFunctionLike($parent) ||
( (
$node->parent instanceof Tolerant\Node\Expression\BinaryExpression && $parent instanceof Tolerant\Node\Expression\BinaryExpression &&
$node->parent->operator->kind === Tolerant\TokenKind::InstanceOfKeyword $parent->operator->kind === Tolerant\TokenKind::InstanceOfKeyword
) )
)); ));
} }

View File

@ -0,0 +1,13 @@
<?php
namespace TestNamespace;
/**
* Aute duis elit reprehenderit tempor cillum proident anim laborum eu laboris reprehenderit ea incididunt.
*
* @param TestClass $param Adipisicing non non cillum sint incididunt cillum enim mollit.
* @return TestClass
*/
function whatever(TestClass $param): TestClass2 {
echo $param;
}