[article] Language Design Deal Breakers
deadalnix
deadalnix at gmail.com
Mon May 27 02:17:57 PDT 2013
On Monday, 27 May 2013 at 09:08:16 UTC, Walter Bright wrote:
> On 5/27/2013 2:05 AM, deadalnix wrote:
>> On Monday, 27 May 2013 at 08:06:48 UTC, Jonathan M Davis wrote:
>>>> That is not enough. NotNull must be initialized, so the
>>>> compiler
>>>> have to track initialization in way it don't do today. This
>>>> is
>>>> the exact same processing required to ensure non null
>>>> references.
>>>
>>> @disable this(); would solve that.
>>>
>>
>> That is the point, the logic required to support @disable this
>> is the exact same
>> that the one required to support non null. That is the
>> freaking same thing :
>> track initialization and yell at the programmer when you can't
>> find it.
>
> Are you arguing that notnull should be a core language feature
> instead of a library one?
I'm saying that NonNull require language support, either by
making it a first class entity, or by introducing some other
language feature like @disable this(). At the end it doesn't
change anything for the compiler, the exact same work have to be
done, simply on different entities. It can't be a 100% library
feature as the work around @disable this shows.
I think that ideally, nonnull pointer should be a core feature.
Considering history, a library solution is preferable.
But the argument about compiler feature don't stand, as nonnull
pointer and @disable this require the exact same processing in
the compiler.
More information about the Digitalmars-d
mailing list