[swift-evolution] Proposal: Do not allow redundant unwrapping.
Joe Groff
jgroff at apple.com
Wed Dec 9 17:30:52 CST 2015
> On Dec 9, 2015, at 3:20 PM, Amir Michail <a.michail at me.com> wrote:
>
>
>> On Dec 9, 2015, at 12:13 PM, Joe Groff <jgroff at apple.com> wrote:
>>
>>
>>> On Dec 9, 2015, at 6:31 AM, Amir Michail via swift-evolution <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?
-Joe
More information about the swift-evolution
mailing list