<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Dec 20, 2015 at 4:42 AM, Jasl via swift-dev <span dir="ltr">&lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div style="font-family:Helvetica,Arial;font-size:13px;color:rgb(0,0,0);margin:0px"><div style="margin:0px">Hi,</div><div style="margin:0px"><br></div><div style="margin:0px">I found a piece of code that could made the compiler crash, It’s can reproduce on Xcode 7.2(7C68) with Apple Swift version 2.1.1 (swiftlang-700.1.101.15 clang-700.1.81) Target: x86_64-apple-darwin15.2.0</div><div style="margin:0px"><br></div><div style="margin:0px">the code is simply like:</div><div style="margin:0px"><br></div><div style="margin:0px"><div style="margin:0px">protocol FooType {</div><div style="margin:0px">  func bar(b: Int)</div><div style="margin:0px">}</div><div style="margin:0px"><br></div><div style="margin:0px">extension FooType {</div><div style="margin:0px">  func bar(a: Int, b: Int) {</div><div style="margin:0px">  }</div><div style="margin:0px">}</div><div style="margin:0px"><br></div><div style="margin:0px"><div style="margin:0px">struct Foo: FooType {</div><div style="margin:0px">  </div><div style="margin:0px">}</div></div></div></div></div></blockquote><div><br></div><div>Hi Jasl,</div><div><br></div><div>This example does not seem to crash in current master branch:</div><div><br></div><div>swiftc a.swift</div><div>a.swift:10:8: error: type &#39;Foo&#39; does not conform to protocol &#39;FooType&#39;</div><div>struct Foo: FooType {</div><div>       ^</div><div>a.swift:2:8: note: protocol requires function &#39;bar&#39; with type &#39;(Int) -&gt; ()&#39;</div><div>  func bar(b: Int)</div><div>       ^</div><div>a.swift:6:8: note: candidate has non-matching type &#39;&lt;Self&gt; (Int, b: Int) -&gt; ()&#39; (aka &#39;&lt;τ_0_0&gt; (Int, b: Int) -&gt; ()&#39;)</div><div>  func bar(a: Int, b: Int) {</div><div>       ^ </div><div><br></div><div>Dmitri</div></div><div><br></div>-- <br><div class="gmail_signature">main(i,j){for(i=2;;i++){for(j=2;j&lt;i;j++){if(!(i%j)){j=0;break;}}if<br>(j){printf(&quot;%d\n&quot;,i);}}} /*Dmitri Gribenko &lt;<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>&gt;*/</div>
</div></div>