[swift-evolution] Proposal: Do not allow redundant unwrapping.

Joe Groff jgroff at apple.com
Wed Dec 9 17:43:29 CST 2015


Thanks!
> On Dec 9, 2015, at 3:41 PM, Amir Michail <a.michail at me.com> wrote:
> 
> 
>> On Dec 9, 2015, at 6:30 PM, Joe Groff <jgroff at apple.com <mailto:jgroff at apple.com>> wrote:
>> 
>>> 
>>> On Dec 9, 2015, at 3:20 PM, Amir Michail <a.michail at me.com <mailto:a.michail at me.com>> wrote:
>>> 
>>> 
>>>> On Dec 9, 2015, at 12:13 PM, Joe Groff <jgroff at apple.com <mailto:jgroff at apple.com>> wrote:
>>>> 
>>>> 
>>>>> On Dec 9, 2015, at 6:31 AM, Amir Michail via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>>> 
>>>>> The following should result in a compile error:
>>>>> 
>>>>> var x:Int? = 5
>>>>> var y:Int?
>>>>> 
>>>>> y = x! // compiler error, unwrapping is redundant
>>>>> 
>>>>> The unnecessary unwrapping gives the wrong impression about the type of y — namely that it is Int.
>>>> 
>>>> The compiler doesn't know this. You gave x type 'Int?', not 'Int’.
>>> 
>>> It knows this because x! has type Int and y has type Int?. So the unwrapping is unnecessary prior to the assignment to y. You should have just written “y = x”.
>> 
>> Ah, I see what you're saying. This seems like a reasonable warning to add to the compiler; I don't think it requires a formal language change. Got time to file a bug requesting this?
> 
> Done. It’s SR-167.
> 
>> 
>> -Joe
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151209/78c54fdf/attachment.html>


More information about the swift-evolution mailing list