On Sat, Jan 5, 2013 at 11:14 PM, Walter Bright
<newshou...@digitalmars.com>wrote:

> On 1/5/2013 2:06 PM, Philippe Sigaud wrote:
>
>> But why is @(MyType) accepted, whereas @(int) is not?
>>
>
> Because it's looking for an expression inside the parents, and int is not
> an expression.
>
>
Well, first that would be nice to have the grammar online :)

Even if I understand the grammar restriction, from a user PoV this is quite
unexpected: a built-in type is a completely legal part of a D tuple. Either
it should be restricted to user-defined types (something I don't like), or,
if attributes are supposed to be tuples, then any tuple element should be
authorized.

And I will not buy a possible argument saying that I can wrap an int inside
a user-defined type. Yes, I can. But then, there is the same solution for
@(3) or @("Hello") and *these* are legal.

Reply via email to