Summary: alias pure nothrow XXX; is not pure nothrow!
           Product: D
           Version: 2.025
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD

But alias XXX pure nothrow; works!
pure nothrow {
  alias void function(int) A;   // A is pure nothrow

alias void function(int) pure nothrow  B; // B is pure nothrow
alias pure nothrow void function(int) C; // C is NOT pure nothrow!

void main()
    A a = null;
    B b = null;
    C c = null;
    a = b; // ok
    a = c; // fails!
bug.d(15): Error: cannot implicitly convert expression (c) of type void
(int) to void function(int) pure nothrow
If you take away the aliases, and use variables A, B, C instead, it works. So
it's a problem with 'alias'.


Reply via email to