<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;">
<div>Apologies for any terminology that I'm not using correctly, but I'm wondering if there's any way to make this work in Swift 4:</div>
<div><br /></div>
<div>```</div>
<div><font face="Monaco">protocol P1 {</font></div>
<div><font face="Monaco">&#160; &#160; associatedtype Thing</font></div>
<div><font face="Monaco">&#160; &#160; func makeThing() -&gt; Thing</font></div>
<div><font face="Monaco">}</font></div>
<div><font face="Monaco"><br /></font></div>
<div><font face="Monaco">protocol P2: P1 where Thing == String {}</font></div>
<div><br /></div>
<div><font face="Monaco">func test(_ p2: P2) {&#160;</font><span style="font-family: Monaco;">// Can only use P2 as a generic constraint even though P2.Thing should be known to be String</span></div>
<div><font face="Monaco">&#160; &#160; print(p2.makeThing())</font></div>
<div><font face="Monaco">}</font></div>
<div>```</div>
<div><br /></div>
<div>I want P2 to conform to P1 and make its associated type concrete so that it can be used directly. If this isn't possible right now, are there any plans for something like this to be added in the future? I've looked through the generics manifesto, but I didn't see anything that seemed to address this issue.</div>
<div><br /></div>
<div>Thanks!</div>
</div>
<div name="messageSignatureSection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;"><br />
Jarod</div>
</body>
</html>