On Sunday, 14 August 2016 at 20:02:35 UTC, Walter Bright wrote: > auto r = range; You said that if a value (range in this case) is returned by scope, its lifetime is restricted to its expression, hence it can't be assigned to a variable, because the variable outlives the expression.