Make const, immutable, inout, and shared illegal as function attributes on the left-hand side of a function

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 12 02:28:49 PDT 2014


On 11/10/14 11:16, Walter Bright via Digitalmars-d wrote:
> On 10/10/2014 4:16 PM, Joseph Rushton Wakeling via Digitalmars-d wrote:
>> I agree with that general sentiment, but doesn't this patch only deprecate
>> left-hand-side function attributes?
>
> Only some of them, others remain:
>
>      pure int foo() { ... }

Not good.  If LHS function attributes are to be deprecated, it really ought to 
be all or nothing.

>> I don't particularly mind you refusing it, but deprecation (in support of good
>> stylistic practice) isn't breaking.
>
> Deprecation means it'll be removed.

Hmm, maybe I've misunderstood the deprecation process.  It was my understanding 
that, to remove a feature or function, it was necessary to deprecate it first; 
but that deprecation would not necessarily always lead to deletion.

I may be thinking too specifically of Phobos, where it's obviously much easier 
to deprecate a module without ever removing it.


More information about the Digitalmars-d mailing list