Attribute inference for auto functions?

Zach the Mystic reachzach at gggggmail.com
Wed Apr 17 21:49:08 PDT 2013


On Thursday, 18 April 2013 at 03:19:38 UTC, Walter Bright wrote:
> On 4/17/2013 7:50 PM, Zach the Mystic wrote:
>> On Thursday, 18 April 2013 at 02:40:42 UTC, Walter Bright 
>> wrote:
>>> On 4/16/2013 8:22 AM, Andrei Alexandrescu wrote:
>>>> There's a discussion that may be of interest to the larger 
>>>> community:
>>>> https://github.com/D-Programming-Language/dmd/pull/1877
>>>
>>> What do you think of this:
>>>
>>>     typeof(return) foo(int x) { return x; }
>>>
>>> ? That would only infer the return type, not the attributes.
>>
>> I don't actually have an opinion on whether attributes should 
>> be inferred, but
>> '@auto' (as opposed to '@infer') would be a relatively 
>> innocuous way to do it
>> explicitly instead of implicitly.
>
> Except that we already support typeof(return) inside of a 
> function.

Yeah, I basically agree. If I had to choose right now, 
typeof(return) makes more sense. It relies on the assumption that 
most of the time when you want to 'auto' the return type, you 
also are okay with autoing the attributes (hence typeof(return) 
will be much rarer than 'auto'). It seems like a pretty safe 
assumption to make. And it's weird but '@' is just uglier than 
things without '@', despite that it would be nice for UDAs and 
other attributes if that weren't the case.


More information about the Digitalmars-d mailing list