On 27 July 2014 00:20, Iain Buclaw <[email protected]> wrote: > On 26 July 2014 21:06, H. S. Teoh via Digitalmars-d > <[email protected]> wrote: >> On Sat, Jul 26, 2014 at 07:44:47PM +0000, Iain Buclaw via Digitalmars-d >> wrote: >>> Hi, >>> >>> TypeTuples have a special mangling convention in the compiler. >>> >>> As per the docs (ref: http://dlang.org/abi.html) >>> >>> TypeTuple: >>> B Number Arguments >>> >>> >>> However after some cursory tests, it seems that the most obvious examples >>> of, passing a tuple via parameters, returning a tuple, declaring a tuple >>> variable, etc... all get lowered before mangling. >>> >>> So at first glance, this mangling convention is redundant. >>> >>> Unless of course someone can post an example which triggers mangling >>> of TypeTuples... >> [...] >> >> Huh, interesting. I tried various wrapping/unwrapping tricks and passing >> things via alias parameters, but none of them triggered TypeTuple >> mangling. Either I missed something obvious, or perhaps this mangling is >> never actually emitted? Not sure. >> > > I've tried something similar using D1 too, and get the same results. > > I'd be willing to do an experiment and remove TypeTuple mangling from > the language by force and see what ICE's.
I changed Ttuple = 'B' to Ttuple = '@' and waited for assembly errors to happen. Finally got them when compiling std.outbuffer unittests. Reducing....
