On Sunday, 2 March 2025 at 23:28:09 UTC, Inkrementator wrote:
On Sunday, 2 March 2025 at 19:31:06 UTC, realhet wrote:
Anyone have an idea?
While template mixins have access to the caller scope, the
default values for parameters apparently don't.
Thank you, both of you!
That was the key to a successful solution, that the mixin
template's surface have access to the caller scope.
So I ended up with two separate string mixins:
* The 1st injects a dummy declaration using the string
definitions.
* The 2nd analizes the declaration and injects the final
generated code based on that.
It was also important to separate the two things into two mixins.
This must be because multipass processing. The second's first
pass must access the result of the first's last pass, I guess.
I will also remember that mixin("import ") trick. Dangerous but
powerful stuff.