November 27, 2021
https://issues.dlang.org/show_bug.cgi?id=21537

--- Comment #6 from moonlightsentinel@disroot.org ---
Right, I've fixed the example. Conversions including const class references are accepted but both conversion including FP and delegates are rejected on nightly:

For reference:

class A {}
class B : A {}

alias SysFP = void function();
alias SafeFP = void function() @safe;

alias SysDG = void delegate();
alias SafeDG = void delegate() @safe;

void main()
{
    {
        A a;
        B b;
        a = b; // Fine
    }{
        const(A)* ap;
        const(B)* bp;
        ap = bp; // Accepted
    }{
        SafeFP safeFp;
        SysFP sysFp;
        sysFp = safeFp; // Fine
    }{
        const(SafeFP)* safeFpPtr;
        const(SysFP)* sysFpPtr;
        sysFpPtr = safeFpPtr; // Error: cannot implicitly convert expression
`safeFpPtr` of type `const(void function() @safe)*` to `const(void
function())*`
    }{
        SafeDG safeDg;
        SysDG sysDg;
        sysDg = safeDg; // Fine
    }{
        const(SafeDG)* safeDgPtr;
        const(SysDG)* sysDgPtr;
        sysDgPtr = safeDgPtr; // Error: cannot implicitly convert expression
`safeDgPtr` of type `const(void delegate() @safe)*` to `const(void
delegate())*`
    }
}

--
December 07, 2021
https://issues.dlang.org/show_bug.cgi?id=21537

Bolpat <qs.il.paperinik@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |regression

--- Comment #7 from Bolpat <qs.il.paperinik@gmail.com> ---
(In reply to moonlightsentinel from comment #6)
> For reference:
>
> // Error: cannot implicitly convert expression
> `safeDgPtr` of type `const(void delegate() @safe)*` to `const(void
> delegate())*`

Seems like it's become a regression, too. Compiling the code linked obove (https://run.dlang.io/is/zSNArx) with all DMDs gives:

2.079.1 to 2.095.1: Failure with output:
-----
onlineapp.d(69): Error: function `onlineapp.FunctionPtrContext.g(const(void
function())* _param_0)` is not callable using argument types `(void function()
@safe*)`
onlineapp.d(69):        cannot pass argument `& safeFp` of type `void
function() @safe*` to parameter `const(void function())* _param_0`
-----

Since      2.096.1: Failure with output:
-----
onlineapp.d(45): Error: function `onlineapp.DelegateContext.g(const(void
delegate())* _param_0)` is not callable using argument types `(void delegate()
@safe*)`
onlineapp.d(45):        cannot pass argument `& safeDG` of type `void
delegate() @safe*` to parameter `const(void delegate())* _param_0`
onlineapp.d(69): Error: function `onlineapp.FunctionPtrContext.g(const(void
function())* _param_0)` is not callable using argument types `(void function()
@safe*)`
onlineapp.d(69):        cannot pass argument `& safeFp` of type `void
function() @safe*` to parameter `const(void function())* _param_0`
-----

2.079.1 to 2.095.1 has no problem with the delegates.

--
December 07, 2021
https://issues.dlang.org/show_bug.cgi?id=21537

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|regression                  |normal

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=21537

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--
1 2
Next ›   Last »