[article] Language Design Deal Breakers
Regan Heath
regan at netmail.co.nz
Wed May 29 05:19:54 PDT 2013
Another outside POV..
On Wed, 29 May 2013 10:20:39 +0100, deadalnix <deadalnix at gmail.com> wrote:
> On Wednesday, 29 May 2013 at 07:50:39 UTC, Kenji Hara wrote:
>> Currently I recognize that it is necessary to fix compiler bugs around
>> @disable this(); at least.
>>
>> @deadalnix, it seems to me that you argue that @disable this(); is
>> insufficient or useless to implement NotNull!T. If so, what is
>> necessary to
>> do it? What is impossible thing by NotNullT?
>>
>
> No I'm nto saying that this is impossible, I'm saying that @disable
> this() and non nullable pointer are the exact same feature.
>
> To implement both, the compiler have to track initialization of the
> value and yell at you if it isn't done, or if the value read before
> being initialized.
>
> I don't understand why this is so hard to understand.
It's not. Everyone understands this point, it's not the point of
contention.
> I started discussing this because people where claiming that non null
> makes the compiler more complex to implement, which is completely false.
That's not the argument being made by Simen. The argument is that
@disable this() is a feature which allows a set of features which include
but is not limited to not-null, and is therefore a superior feature to
have.
Do you agree?
IMO, this then renders any specific not-null language feature
unnecessary. And, allows a library type to do the job.
> Now, as D assume all over the place that everything can be initialized
> by default, so making @disable this work require a larger design change
> than simply pluging holes. It means that as of now, some entities can't
> be initialized by default.
Assuming, as you say, that @disable this() and not-null require the same
compiler work, these holes that need plugging would need plugging in
either case, right?
R
--
Using Opera's revolutionary email client: http://www.opera.com/mail/
More information about the Digitalmars-d
mailing list