Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MERGE] ParseXS: refactor OUTPUT and RETVAL code
My previous merge commit, 5.41.4-108-g9621dfa822, added Node::Param objects - which store information about each parameter in an XSUB's signature - but updated with any further data from an INPUT line. This branch extends that work by: - Also updating each Param object with any data from *OUTPUT* lines. - Adding a synthetic Param object for RETVAL, which means that in many places, RETVAL can now be handled just as another parameter (albeit one which is declared but not initialised, and which doesn't consume an arg). There's still plenty of special-casing code for RETVAL, but it now tends to be more in the places where it will have an effect (e.g. some special-handling in INPUT_handler() if RETVAL is seen in an INPUT section) rather than the effect being a side-effect of the way the code works elsewhere. - Does some general refactoring of the code responsible for emitting output code, e.g. in generate_output() etc. There's still more refactoring to be done in this area, but this is a start. - fixes CASE statements, which were partially broken by the previous merge commit.
- Loading branch information