<div dir="ltr">vv<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 24, 2017 at 11:36 PM, Howard Lovatt <span dir="ltr">&lt;<a href="mailto:howard.lovatt@gmail.com" target="_blank">howard.lovatt@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would say yes they are different for the example. Definitely something I miss is nesting types to given a seperate namespace.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- Howard.<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
&gt; On 24 Dec 2017, at 9:56 pm, Slava Pestov via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;<br>
&gt; There was a proposal to allow protocols to be nested inside types at one point but it didn’t move forward.<br>
&gt;<br>
&gt; Basically, if the outer type is a non-generic class, struct or enum, there’s no conceptual difficulty at all.<br>
&gt;<br>
&gt; If the outer type is a generic type or another protocol, you have a problem where the inner protocol can reference generic parameters or associated types of the outer type. This would either have to be banned, or we would need to come up with coherent semantics for it:<br>
&gt;<br>
&gt; struct Generic&lt;T&gt; {<br>
&gt;  protocol P {<br>
&gt;    func f() -&gt; T<br>
&gt;  }<br>
&gt; }<br>
&gt;<br>
&gt; struct Conforms : Generic&lt;Int&gt;.P {<br>
&gt;  func f() -&gt; Int { … } // Like this?<br>
&gt; }<br>
&gt;<br>
&gt; let c = Conforms()<br>
&gt; c is Generic&lt;String&gt;.P // is this false? Ie, are Generic&lt;Int&gt;.P and Generic&lt;String&gt;.P different protocols?<br>
&gt;<br>
&gt; Slava<br>
&gt;<br>
&gt;&gt; On Dec 24, 2017, at 6:53 PM, Kelvin Ma via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; is there a reason why it’s not allowed to nest a protocol declaration inside another type?<br>
&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; swift-evolution mailing list<br>
&gt;&gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; swift-evolution mailing list<br>
&gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
</div></div></blockquote></div><br></div>