I've now needed to add an extra parameter to this call twice recently. Not only is the signature getting extremely unwieldy, but just updating all of the callsites and implementations is a pain. Putting the parameters in a struct sidesteps both issues.
I was wondering about this change. The previous arguments are either values or const&, but the new argument is a non-const reference. Is that intentional (i.e. is it meant that in the future, or even now, implementations of lowerCall should/can modify this argument), or can the argument be turned into a const&? The documentation doesn't say much, so I'm assuming the latter is true. Thanks.