On Wednesday, 5 February 2014 at 00:47:27 UTC, Walter Bright wrote:
On 2/4/2014 2:39 PM, Dicebot wrote:
Also non-nullable types should be implicitly cast to nullable parameters so you
don't always need to support all cases distinctively.

The difficulty comes when needing to transfer the nullability of the argument to the nullability of the return type. Implicit conversions don't help with that.

See inout.

Why can't inout be used for that as well? Same for pure & co.

In my opinion "inout" should be simply generic placeholder saying "allow only code that works for all possible qualifiers and preserve those in return type".

But nature of nullable is such that you rarely want to transfer it. Is can be useful as return type sometimes but when you pass it around and process it you almost always want it to be non-nullable. There is no practical benefit in trying to provide all-allowing API's.

Reply via email to