<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="">Makes sense. Thanks!<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 26, 2017, at 1:01 PM, Itai Ferber &lt;<a href="mailto:iferber@apple.com" class="">iferber@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">


<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" class="">

<div class="">
<div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><p dir="auto" class="">Hi Robert,</p><p dir="auto" class="">When the conditional conformance feature arrives in Swift, it will allow us to express <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7" class="">extension Array : Encodable where Element : Encodable</code> and <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7" class="">extension Array : Decodable where Element : Decodable</code>.<br class="">
At the moment, this isn’t possible, so <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7" class="">Array</code> is unconditionally <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7" class="">Codable</code> and the failure happens at runtime. This will be a compile-time error in a future version of Swift.</p><p dir="auto" class="">— Itai</p><p dir="auto" class="">On 26 Oct 2017, at 9:47, Robert Nikander via swift-users wrote:</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px" class=""><p dir="auto" class="">Hi,</p><p dir="auto" class="">This error makes perfect sense, but I’m surprised it's a runtime error. I expected it at compile time. Am I doing something wrong? Is this on the type system to-do list?</p><p dir="auto" class="">let c = JSONEncoder()<br class="">
  struct Foo { … }<br class="">
  let fs: [Foo] = [ Foo(...) ]<br class="">
  let data = try! c.encode(fs)   // Didn’t think this would compile</p><p dir="auto" class="">The runtime error is: fatal error: Array&lt;Foo&gt; does not conform to Encodable because Foo does not conform to Encodable.</p><p dir="auto" class="">Rob_______________________________________________<br class="">
swift-users mailing list<br class="">
<a href="mailto:swift-users@swift.org" style="color:#777" class="">swift-users@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-users" style="color:#777" class="">https://lists.swift.org/mailman/listinfo/swift-users</a></p>
</blockquote>
</div>
</div>
</div>

</div></blockquote></div><br class=""></div></body></html>