The AST generated by SmaCC has a postCopy in the same way that you describe, so I'd say this is OK.

That's good
��
Just be precise about what you copy and what you don't copy. Can you say what will be copied and what won't?

For instance, in RBMethodNode I want to copy replacements inst var.
Another example: for RBReturnNode - return and value inst vars.
��