[article] Language Design Deal Breakers
Jesse Phillips
Jesse.K.Phillips+D at gmail.com
Tue May 28 20:07:25 PDT 2013
Outsider summary:
* Implementing @disable provides the groundwork for a working
non-nullable type
* Non-nullable types cannot make a working @disable
Adding non-nullable to a library
* Implement NotNullable!T
Adding non-nullable to the language
* Choose syntax
* Integrate with other language features (e.g. new)
* Decided on how to obtain a non-nullable from a nullable (and
other choices also made by implementing NotNullable!T)
From the arguments present, I side with Simen that implementing
the new type in the language would not be the same as building
the library type.
@disable only provides the initialization tracking required to
have a non-nullable type. But the type still must be implemented
and if added to the language it would need to be integrated with
other elements of the language, while a library type uses
existing integration points.
BTW, @disable was added to build a non-nullable type. So it
should be included in the current effort to get non-nullable in
D; though its added benefits for other applications is nice.
More information about the Digitalmars-d
mailing list