<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">Hi Robert,</p>

<p dir="auto">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">extension Array : Encodable where Element : Encodable</code> and <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">extension Array : Decodable where Element : Decodable</code>.<br>
At the moment, this isn’t possible, so <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">Array</code> is unconditionally <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">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">— Itai</p>

<p dir="auto">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">
<p dir="auto">Hi,</p>

<p dir="auto">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">let c = JSONEncoder()<br>
  struct Foo { … }<br>
  let fs: [Foo] = [ Foo(...) ]<br>
  let data = try! c.encode(fs)   // Didn’t think this would compile</p>

<p dir="auto">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">Rob_______________________________________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org" style="color:#777">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" style="color:#777">https://lists.swift.org/mailman/listinfo/swift-users</a></p>
</blockquote>
</div>
</div>
</body>
</html>