[Review] SE-0054: Abolish ImplicitlyUnwrappedOptional type


(Anton Zhilin) #1

First of all, -1 for still not exposing @autounwrapped to the user as
discussed.
But there is a greater problem.

If we move from current type syntax to attribute syntax, we should remove
T!, because it can no longer be a type. Otherwise we will only bring more
inconsistency into the language.

But then you'll say @autounwrapped is too verbose to be used everywhere.

Let's be honest, we rarely use IUO in Swift (IBoutlet was noted).
Objective-C does not use T! syntax. So the goal is actually to reduce
syntactic noise in documentation of imported functions.

One solution could be to remove T! from Swift, but leave this notation for
documentation. Or brainstorm that and find another terse and readable
syntax.

What is your evaluation of the proposal?

Right now, -2.

Is the problem being addressed significant enough to warrant a change to

Swift?
Yes, compiler magic should be limited.

Does this proposal fit well with the feel and direction of Swift?

Idea - yes, wording - no.

If you have you used other languages or libraries with a similar feature,

how do you feel that this proposal compares to those?
No languages that I know of have IUO.

How much effort did you put into your review? A glance, a quick reading,

or an in-depth study?
Followed and participated in the discussion.

- Anton