On Sunday, 1 December 2024 at 00:08:02 UTC, Richard (Rikki)
Andrew Cattermole wrote:
The trick for such a function, is you have the public wrappers
that sanitize the input into something that you want to work
with, then internally have a function that accepts only that
input.
I'm putting things out into smaller functions.
Now I have az image2D_impl() too. And 3 more. But the recursive
expansion error is still there.
Now I tracked down wich specific error is that:
"%s `%s` recursive expansion"
It has 2 occurences in dmd/dsymbolsem.d
I thint it's the 2nd one.
```d
if (doSemantic3)
tempinst.trySemantic3(sc2);
TemplateInstance ti = tempinst.tinst;
int nest = 0;
while (ti && !ti.deferred && ti.tinst)
{
ti = ti.tinst;
if (++nest > global.recursionLimit)
{
global.gag = 0; // ensure error message gets
printed
.error(tempinst.loc, "%s `%s` recursive
expansion", tempinst.kind, tempinst.toPrettyChars);
fatal();
}
}
```
But how can a standard template like CommonType or isNumeric go
nuts recursively? o.O
I will check them, maybe they don't like my Vector/Image
structs...