https://issues.dlang.org/show_bug.cgi?id=24265

Paul Backus <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|diagnostic                  |

--- Comment #5 from Paul Backus <[email protected]> ---
Correction, it's not a diagnostic problem--the types are printed differently
because they are actually considered different by the compiler. For example,
this:

---
void test()
{
    int local;

    ref int explicit() pure nothrow @nogc @safe return;
    ref int inferred() pure nothrow @nogc @safe => local;
    static assert(is(typeof(&explicit) == typeof(&inferred)));
}
---

...fails with the following output:

---
bug.d(7): Error: static assert:  `is(int delegate() pure nothrow @nogc ref
return @safe == int delegate() pure nothrow @nogc ref @safe)` is false
---

The return attribute is not printed because it is genuinely not being inferred,
probably due to issue 22977.

--

Reply via email to