Writing .di files duplicate storage

Steven Schveighoffer schveiguy at yahoo.com
Mon Aug 8 06:33:32 PDT 2011


On Mon, 08 Aug 2011 04:01:17 -0400, simendsjo <simendsjo at gmail.com> wrote:

> On 08.08.2011 09:47, Jonathan M Davis wrote:
>> On Monday 08 August 2011 09:42:15 simendsjo wrote:
>>> I'm writing here because I haven't been able to create a smaller  
>>> example
>>> and I'm not sure what to search for in bugzilla.
>>>
>>> DMD adds a storage identifier twice when writing .di files.
>>> This is my code:
>>>       ///
>>>       static @property isGUIThread() {
>>>           return cast(bool)IsGUIThread(false);
>>>       }
>>>
>>> And this is the generated .di file:
>>>       static @property @property  isGUIThread()
>>> {
>>> return cast(bool)IsGUIThread(false);
>>> }
>>>
>>> I have several other static @property fields too, but this is the only
>>> one affected.
>>>
>>> Is this issue already in bugzilla? Or do I have to try to reproduce it
>>> in a smaller testcase?
>>
>> http://d.puremagic.com/issues/show_bug.cgi?id=6360
>
> Wow! That was strange... If you look at my original property, I'm  
> missing the bool return type. I don't have auto or void as the return  
> type either. Compiling this gives no warnings!
>
> If I add bool as return type, the duplicate @property is dropped.
>
> Any idea why this even compiles? The documentation doesn't say anything  
> about @property automatically adding a return type.

I don't think it's the @property, I think its the static.

static generally implies auto, for example:

static i = 1;

will compile.

-Steve


More information about the Digitalmars-d-learn mailing list