toHash => pure, nothrow, const, @safe

kennytm kennytm at gmail.com
Tue Mar 13 15:39:41 PDT 2012


Andrei Alexandrescu <SeeWebsiteForEmail at erdani.org> wrote:
> On 3/13/12 6:02 AM, Peter Alexander wrote:
>> On Monday, 12 March 2012 at 09:40:15 UTC, Walter Bright wrote:
>>> On 3/12/2012 1:08 AM, Martin Nowak wrote:
>>>> What's wrong with auto-inference. Inferred attributes are only
>>>> strengthening
>>>> guarantees.
>>> 
>>> Auto-inference is currently done for lambdas and template functions -
>>> why? - because the function's implementation is guaranteed to be
>>> visible to the compiler. For other functions, not so, and so the
>>> attributes must be part of the function signature.
>> 
>> Dumb question:
>> 
>> Why not auto-infer when the function body is available, and put the
>> inferred attributes into the automatically generated .di file?
>> 
>> Apologies if I've missed something completely obvious.
> 
> Because in the general case functions call one another so there's no way
> to figure which to look at first.
> 
> Andrei

That's no difference from template functions calling each others right?

    int a()(int x) { return x==0?1:b(x-1); }
    int b()(int x) { return x==0?1:a(x-1); }


More information about the Digitalmars-d mailing list