> On Dec 30, 2015, at 4:23 PM, Matthew Johnson via swift-evolution 
> <[email protected]> wrote:
> 
> 
>> On Dec 30, 2015, at 5:19 PM, Kevin Ballard via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> On Wed, Dec 30, 2015, at 03:12 PM, Kevin Wooten via swift-evolution wrote:
>>>>>  
>>>>> Another possibility I've thought of is defining `defer { val }` to 
>>>>> guarantee that val remains alive until the defer fires on scope exit. 
>>>>> That might let us leave `defer` as the one "guarantee something happens 
>>>>> exactly at scope exit" language construct.
>>>  
>>> What about this…
>>>  
>>> defer let val = grabOrCreateSomething() {
>>>   return;
>>> }
>>>  
>>> Seems natural once you learn guard.
>>  
>> Natural? I have no idea what you're expecting that expression to actually 
>> do. What is a "defer let”?
> 
> I think the idea is that a local variable declared with a `defer` modifier 
> has its lifetime extended until the scope exits.  It is a slightly more 
> compact version of what Joe suggested.  But I agree that it has potential for 
> confusion - it reads like it is deferring the initialization of `val` until 
> the scope exits which would be rather pointless.
> 

Given our discussion that’s definitely the gist of it, but I do stand 
corrected.  I guess I meant the syntax felt “familiar” to guard, but I'd agree 
upon reflection it doesn’t read well.

> I do like the idea of making the extended lifetime part of the local variable 
> declaration but I’m not sure about how this specific syntax reads.
> 
>>  
>> -Kevin
>>  
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to