Node::isEqual not properly comparing nodes with array properties
tomzx opened this issue · comments
A signature such as public function find($id, $columns = ['*'])
contains an Array_
expression, which itself contains $items = []
. When we iterate over the properties of a node, we should check if it is an array and if so, test if each corresponding elements is a \PhpParser\Node
(and recursively call Node::isEqual
) or directly compare the two.
Another simple and dirty solution would be to reuse the code in \PHPSemVerChecker\Comparator\Implementation
(using the \PhpParser\NodeDumper
and check for dump identicality).
Affected version: 0.10.0
Hi, @tomzx. This bug affects our CI recently, do you have plans to fix this issue?
Hello @x86demon, I do not have time to maintain this library anymore, so there are no plans for this issue to be fixed.
Feel free to create a PR, I'll be happy to review a solution.