November 27, 2021 [Issue 21537] Pointer to function pointer cannot be converted to pointer to const function pointer with lower attributes | ||||
---|---|---|---|---|
| ||||
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 [Issue 21537] Pointer to function pointer cannot be converted to pointer to const function pointer with lower attributes | ||||
---|---|---|---|---|
| ||||
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 [Issue 21537] Pointer to function pointer cannot be converted to pointer to const function pointer with lower attributes | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21537 moonlightsentinel@disroot.org changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|regression |normal -- |
December 17, 2022 [Issue 21537] Pointer to function pointer cannot be converted to pointer to const function pointer with lower attributes | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21537 Iain Buclaw <ibuclaw@gdcproject.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P1 |P3 -- |
Copyright © 1999-2021 by the D Language Foundation