`return const` parameters make `inout` obsolete
ketmar via Digitalmars-d
digitalmars-d at puremagic.com
Mon Mar 16 08:39:39 PDT 2015
On Mon, 16 Mar 2015 15:33:40 +0000, Zach the Mystic wrote:
> On Monday, 16 March 2015 at 14:23:42 UTC, ketmar wrote:
>> On Mon, 16 Mar 2015 14:17:57 +0000, Zach the Mystic wrote:
>>> char* fun(return const char* x);
>>> Compiler has enough information to adjust the return type of `fun()`
>>> to that of input `x`. This assumes return parameters have been
>>> generalized to all reference types. Destroy.
>> but why compiler has to rewrite return type? i never told it to do
> It has to if you pass an immutable to x, which you're allowed to do. It
> only gives an error if you assign the result to a mutable variable. The
> point is that the signature still contains all the information it needs
> without `inout`. What old errors will fail to be reported and what new
> errors would it cause? I haven't been able to think of any.
this is the question of consistency. if i wrote `char* fun()`, i want fun
to return `char*`, and i'm not expecting it to change in a slightest. i
don't like when compiler starts to change things on it's own.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: not available
More information about the Digitalmars-d