| // https://issues.dlang.org/show_bug.cgi?id=21591 |
| |
| alias F = void function(); |
| |
| void fn1(void function(), void function()); |
| void fr1(F, F); |
| static assert(fn1.mangleof == "_D9test215913fn1FPFZvQeZv"); |
| static assert(fr1.mangleof == "_D9test215913fr1FPFZvQeZv"); |
| |
| void fn2(void function()*, void function()*); |
| void fr2(F*, F*); |
| static assert(fn2.mangleof == "_D9test215913fn2FPPFZvQfZv"); |
| static assert(fr2.mangleof == "_D9test215913fr2FPPFZvQfZv"); |
| |
| void function() fn3(void function()**, void function()*); |
| F fr3(F**, F*); |
| static assert(fn3.mangleof == "_D9test215913fn3FPPPFZvQfZQh"); |
| static assert(fr3.mangleof == "_D9test215913fr3FPPPFZvQfZQh"); |
| |
| void function()** fn4(ref void function(), ref void function()*); |
| F** fr4(ref F, ref F*); |
| static assert(fn4.mangleof == "_D9test215913fn4FKPFZvKPQgZPQf"); |
| static assert(fr4.mangleof == "_D9test215913fr4FKPFZvKPQgZPQf"); |
| |
| |
| alias D = void delegate(); |
| |
| void dg1(void delegate(), void delegate()); |
| void dr1(D, D); |
| static assert(dg1.mangleof == "_D9test215913dg1FDFZvQeZv"); |
| static assert(dr1.mangleof == "_D9test215913dr1FDFZvQeZv"); |
| |
| void dg2(void delegate()*, void delegate()*); |
| void dr2(D*, D*); |
| static assert(dg2.mangleof == "_D9test215913dg2FPDFZvQfZv"); |
| static assert(dr2.mangleof == "_D9test215913dr2FPDFZvQfZv"); |
| |
| void delegate() dg3(void delegate()**, void delegate()*); |
| D dr3(D**, D*); |
| static assert(dg3.mangleof == "_D9test215913dg3FPPDFZvQfZQh"); |
| static assert(dr3.mangleof == "_D9test215913dr3FPPDFZvQfZQh"); |
| |
| void delegate()** dg4(ref void delegate(), ref void delegate()*); |
| D** dr4(ref D, ref D*); |
| static assert(dg4.mangleof == "_D9test215913dg4FKDFZvKPQgZPQf"); |
| static assert(dr4.mangleof == "_D9test215913dr4FKDFZvKPQgZPQf"); |