Tidy attributes
Don
nospam at nospam.com
Mon Mar 15 12:34:30 PDT 2010
Ary Borenszweig wrote:
> bearophile wrote:
>> While looking for possible attribute problems to add to Bugzilla, I
>> have seen the following D2 program compiles and runs with no errors or
>> warnings:
>>
>>
>> static foo1() {}
>> final foo2() {}
>> ref foo3() {}
>> enum void foo5() {}
>> nothrow foo4() {}
>> pure foo6() {}
>> static int x1 = 10;
>> static x2 = 10;
>> void main() {}
>>
>>
>> I don't like that code, but I don't know if it's correct.
>>
>> - What is a static global function in D?
>> - A final global function?
>> - Is that ref of void correct? (I think it is not)
>> - A enum of void function?
>> - What are global static variables in D?
>> - Are most of those attributes supposed to not need the "void"?
>>
>>
>> The following lines don't compile, is this supposed to be correct?
>> int static x3 = 10;
>> int enum x4 = 1;
>> int const x5 = 2;
>>
>> Bye,
>> bearophile
>
> I have discussed this subject many times, but it doesn't seem very
> important to the D dev team. IIRC they said it doesn't cause any harm.
>
> But in some real code I have seen:
>
> static int foo() { ... }
>
> in global scope, and I always wondered why was that static there. Maybe
> the programmer thought static implied something there and now he's using
> it incorrectly, and now it confused me too and probably many others. So
> I think it is harmful because if the compiler allows such things than
> programmers can assume that must mean something.
Please don't confuse "it's not a high priority" with "it won't be
fixed". There are nearly 900 open compiler bugs in Bugzilla, and we can
only fix a couple of bugs per day. Compiler faults and wrong code
generation always get top priority.
More information about the Digitalmars-d-learn
mailing list