You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm unable to dump a class AST in JSON when using the NameResolver and passing replaceNodes false, because of recursive refs. You can see an example at https://github.com/dhaeckel/php-parser-issue-repro, you have to execute vendor/bin/php-parse -N -j yaf.php and change the NameResolver options in vendor/nikic/php-parser/bin/php-parse to see the problem. A possible mitigation could be to clone already resolved names before returning to break the cyclic refs. See #1075 for a possible solution. Let me know, if you need anything from me.
Thanks
The text was updated successfully, but these errors were encountered:
serializing the AST to JSON is explicitly listed in the list of features, so I think this should be possible, regardless of the NameResolver Options. I do understand the concern about increased memory usage, that's why I propose to hide the cloning solution behind an option, so users can explicitly opt in to use this solution (see the mentioned draft). I'm open for discussion, if this should be treated as an issue and if the proposed solution is the right one.
Hi @nikic,
I'm unable to dump a class AST in JSON when using the NameResolver and passing replaceNodes false, because of recursive refs. You can see an example at https://github.com/dhaeckel/php-parser-issue-repro, you have to execute
vendor/bin/php-parse -N -j yaf.php
and change the NameResolver options in vendor/nikic/php-parser/bin/php-parse to see the problem. A possible mitigation could be to clone already resolved names before returning to break the cyclic refs. See #1075 for a possible solution. Let me know, if you need anything from me.Thanks
The text was updated successfully, but these errors were encountered: