In fact, I feel the same way too. I have definite views about indefinite 
pronouns. When I am teaching, I studiously avoid “it”, “this”, and “that”: at 
any given instant half the students have wandering minds, and if they miss the 
referent, they get lost. My old HyperTalk habits must be resurfacing with “it”. 
:)

I still think the use case is valuable as a (natural IMHO) generalization of 
guard, and feel the annoyance of having the bound variable show up three times 
and outlast the guard, when I don’t want to use or even see it. Brent’s 
suggestion removes the second objection and alleviates the first; I’ll see 
that, but ask if we can raise it. The pitch is:

    guard case let .Succeed(m) = returnsResult() else let r {
        return r
    }

Improvement! The question is: can we reduce this by one or two ‘r’s?

> On 23 Dec, 2015, at 6:59, Félix Cloutier <felix...@yahoo.ca> wrote:
> 
> I feel exactly like Brent.
> 
> Félix
> 
>> Le 23 déc. 2015 à 04:15:24, Brent Royal-Gordon via swift-evolution 
>> <swift-evolution@swift.org> a écrit :
>> 
>>>  guard case let .Succeed(m) = returnsResult() else {
>>>       return it
>>>  }
>>>  // Can safely use m, otherwise Result is passed back the call stack.
>> 
>> I didn't understand what you wanted to begin with, so to summarize: you want 
>> to be able to bind the return value of `returnsResult()` to a constant on 
>> the `else` branch if the pattern doesn't match.
>> 
>> I definitely see the use case here, but I can't say I like the implicit use 
>> of `it`. If we did something like this, I would prefer it be done by 
>> decorating the `else`:
>> 
>>      guard case let .Succeed(m) = returnsResult() else let r {
>>              return r
>>      }
>> 
>> However, I'm honestly not sure that's much less burdensome than this:
>> 
>>      let r = returnsResult()
>>      guard case let .Succeed(m) = r else {
>>              return r
>>      }
>> 
>> It *is* a line less, and a constant less, but it also means adding a new and 
>> slightly funky syntax to the language. I'm just not sure it's worth it.
>> 
>> -- 
>> Brent Royal-Gordon
>> Architechies
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to