[swift-evolution] [Review] SE-0160: Limiting @objc inference

Haravikk swift-evolution at haravikk.me
Wed Mar 22 17:22:00 CDT 2017

> On 22 Mar 2017, at 06:03, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
> * What is your evaluation of the proposal?

In favour.

Like others I can foresee there being a bit of pain for some developers, but I think it's worth it to be more explicit about what's going on, and to clean up a feature that's just for supporting a specific other language.

My main concern is on whether things could be made a bit easier; specifically I wonder whether we could introduce an option (to the compiler?) to trigger warnings anywhere there is a possible missing @objc attribute. Basically on any code that produces bridging headers this would give a warning anywhere that @objc would have been inferred in the past, but will no longer be. Of course this will generate a lot of warnings, but it'll be an easier way for developers to go through and make sure they didn't miss something. Xcode could offer this automatically during migration, and the developer can turn it off when they're done. Not perfect, but it may be a little extra help for those most affected?

> * Is the problem being addressed significant enough to warrant a change to Swift?

I believe so, I think we need to cut down on anything that's too platform or legacy specific in favour of Swift being as clean and functional as possible with limited magic features.

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

Yes, as I believe it tidies up the language and removes something caters too much towards a specific, hopefully increasingly legacy, use-case.

> * How much effort did you put into your review? A glance, a quick reading, or an in-depth study? 

Following discussion, quick re-read.

More information about the swift-evolution mailing list