November 29, 2017
On Sunday, 19 November 2017 at 22:54:38 UTC, Walter Bright wrote:
>> I can't see the problem. You go from nullable to non-nullable by checking for null, and the other direction happens implicitly.
>
> Implicit conversions have their problems with overloading,

The C# implementation doesn't affect overloading:

"There is no semantic impact of the nullability annotations, other than the warnings. They don’t affect overload resolution or runtime behavior, and generate the same IL output code. They only affect type inference insofar as it passes them through and keeps track of them in order for the right warnings to occur on the other end."

> interactions with const, template argument deduction, surprising edge cases, probably breaking a lot of Phobos, etc. It's best not to layer on more of this stuff. Explicit casting is a problem, too.

Maybe this can be mitigated by having the compiler just do the job of tracking null tests and making this information available to a NotNull user defined type.
1 2 3 4 5 6 7 8 9 10 11
Next ›   Last »