<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 18, 2016, at 8:21 PM, Joe Pamer via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">I propose that we fully eliminate implicit bridging conversions in Swift 3. This would mean that some users might have to introduce introduce a few more ‘as’ casts in their code, but we would remove another special case from Swift's type system and be able to further simplify the compiler. If anyone is curious and would like to take this model for a spin, I’ve pushed an experimental branch that implements this proposed change, <font face="Menlo" class="">inhibit-implicit-conversions</font>.</div></div></div></blockquote><br class=""></div><div>What happens with string literals? Are they implicitly converted to NSString as necessary? Which of the following will be legal?</div><div><br class=""></div><div> import Foundation</div><div> func s(_ str: String) { }</div><div> func ns(_ str: NSString) { }</div><div><br class=""></div><div> let str: String = "foo"</div><div> let nsstr: NSString = "foo"</div><div><br class=""></div><div> NSLog("foo")</div><div> NSLog(str)</div><div> NSLog(nsstr)</div><div><br class=""></div><div><div> s("foo")</div><div> s(str)</div><div> s(nsstr)</div><div class=""><br class=""></div><div class=""><div> ns("foo")</div><div> ns(str)</div><div> ns(nsstr)</div></div><div><br class=""></div><div class=""><br class=""></div></div><div>-- </div><div>Greg Parker <a href="mailto:gparker@apple.com" class="">gparker@apple.com</a> Runtime Wrangler</div><div><br class=""></div><div><br class=""></div></body></html>