<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Xcode plans are a little beyond the scope of the Swift project, so I can't promise that there would be any such autoupdating. If there were such a feature, I'd expect it to be in the form of a one-time migration, probably triggered along with the Swift 3 migrator…but the IB team might have other ideas, or decide they have more important things to finish for this release. So I guess the answer is "don't count on it".</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 27, 2016, at 21:56, Charlie Monroe &lt;<a href="mailto:charlie@charliemonroe.net" class="">charlie@charliemonroe.net</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Do you know how would this affect e.g. XIB files or CoreData models where you have the class name + module? If the class was previously marked @objc and now it would be implicitely @objc(ClassName), would it require all XIB files to be updated, or would the XIB compiler be able to deal with it? If the former, than it's a big no for me.</div><div class=""><br class=""></div><div class="">I'm not a big fan of a change on any account either, though, since it's absolutely not clear that @objc would have this side-effect.<br class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 27, 2016, at 10:26 PM, Jordan Rose via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hey, all. An engineer at Apple noticed the following behavior:<div class=""><br class=""></div>1. class Foo: NSObject → exposed to Objective-C, Swift-style (mangled) runtime name<br class="">2. @objc class Foo: NSObject → exposed to Objective-C, Swift-style (mangled) runtime name<div class="">3. @objc(Foo) class Foo: NSObject → exposed to Objective-C, unmangled runtime name</div><div class=""><br class=""></div><div class="">(and 4. @objc class Foo → illegal, classes must have ObjC heritage to be @objc.)</div><div class=""><br class=""></div><div class="">They specifically observed that (1) and (2) have the same behavior, and suggested that maybe (2) should be shorthand for (3).</div><div class=""><br class=""></div><div class="">Pros:</div><div class="">- There aren't two ways to spell (1).</div><div class="">- Removing the mangling (and module uniquing) from the runtime name is probably one of the most common uses of @objc on a class.</div><div class=""><br class=""></div><div class="">Cons:</div><div class="">- It's a source-breaking change, for all that the "@objc" in (2) is redundant.</div><div class="">- For protocols, (1) and (2) are <i class="">not</i>&nbsp;equivalent, because @objc isn't inherited there.</div><div class="">- Mangling is used to namespace class names at run time; if you drop that, the ObjC name should probably have a prefix. (This applies more to frameworks than apps, though.)</div><div class=""><br class=""></div><div class="">There are probably people who say that last con applies to the generated header as well: we shouldn't put (1) or (2) into the generated header because the ObjC name might conflict with another class at <i class="">compile</i> time. This is valid, but probably too drastic a change at this point.</div><div class=""><br class=""></div><div class="">So, what does everyone think? I'm leaning towards "no change" because it's a bit subtle and not a big enough win, but if there's widespread support for this I'll pull it into a proposal.</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><div class="">P.S. This is&nbsp;<a href="rdar://problem/22296436" class="">rdar://problem/22296436</a> for anyone else at Apple.</div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></body></html>