static this sucks, we should deprecate it

Frank Benoit keinfarbton at googlemail.com
Thu May 28 09:33:56 PDT 2009


Ary Borenszweig schrieb:
> Steven Schveighoffer wrote:
>> On Thu, 28 May 2009 11:32:19 -0400, Ary Borenszweig
>> <ary at esperanto.org.ar> wrote:
>>
>>> Unknown W. Brackets wrote:
>>>> Probably a silly idea, but what about (or similar):
>>>>  static this: mod.name, mod.name2, mod.name3
>>>> {
>>>> }
>>>>  For a dependency list.  I may be wrong, but afaik the main problems
>>>> stem from either wrong order or co-dependence (which needs to be
>>>> solved by the programmer.)
>>>>  At least with this, you could ask the compiler for an order,
>>>> potentially.  If the other modules had no static this, it could
>>>> ignore it, allowing future proofing.
>>>>  But, maybe that's an ugly hack.
>>>>  -[Unknown]
>>>>   davidl wrote:
>>>>> Why on earth we still let the tumor grow?
>>>>> I would love to specify the order by myself not by the arbitrary order
>>>>> generated by the compiler.
>>>>>
>>>
>>> Hi,
>>>
>>> Can someone explain me what is exactly the problems with static this?
>>> Something like a small example that shows the problem, so I can at
>>> least think of a solution (because I don't know the problem).
>>>
>>> Thanks!
>>> Ary
>>
>>
>> Something like:
>>
>> file1.d:
>>
>> import file2.d;
>>
>> static this()
>> {
>> }
>>
>> file2.d:
>>
>> import file1.d;
>>
>> static this()
>> {
>> }
>>
>> fails to compile due to the perceived circular dependency, even though
>> none exists.
> 
> Thanks, yes, it fails to run. But why? What could happen if that error
> wasn't issued? I'm looking for an example where something wrong could
> happen.

If that error would be generated, there would be no other way to prevent
you from accessing another module which is not yet initialized (static
this not yet run).



More information about the Digitalmars-d mailing list