On Thursday, 24 January 2019 at 07:18:58 UTC, Mike Parker wrote:
Walter and Andrei have declined to accept DIP 1016, "ref T accepts r-values", on the grounds that it has two fundamental flaws that would open holes in the language. They are not opposed to the feature in principle and suggested that a proposal that closes those holes and covers all the bases will have a higher chance of getting accepted.

You can read a summary of the Formal Assessment at the bottom of the document:

https://github.com/dlang/DIPs/blob/master/DIPs/rejected/DIP1016.md

fun(10)
==>
{
 T __temp0 = void;
 fun(__temp0 := 10);
}
The first problem the Language Maintainers identified with this approach is that the rewrite is from an expression to a statement, rendering it invalid. The expression should be rewritten as an expression to clarify how it behaves in larger expressions.

But it does, or at least gives an example of: https://github.com/dlang/DIPs/blob/master/DIPs/rejected/DIP1016.md#function-calls-as-arguments

The statement the expression is part of is "enscoped" and the temporaries live in the scope of that statement.

Reply via email to