<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="">Hi everyone,<div class=""><br class=""></div><div class="">I just found a major regression bug in Swift 2.2 (it’s tracked under&nbsp;<a href="https://bugs.swift.org/browse/SR-706" class="">SR-706</a>). Since Swift 2.2 development seems to come to an end I wanted to raise some attention for this bug by posting it here as well.</div><div class=""><br class=""></div><div class="">- Alex</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 14px;" class="">When using the generic argument of a function as a parameter of another generic class that is used in the signature, the compiler crashes with&nbsp;<tt style="background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; padding: 1px 3px; background-position: initial initial; background-repeat: initial initial;" class="">Illegal instruction: 4</tt></div><h2 style="margin: 30px 0px 0px; padding: 0px; color: rgb(51, 51, 51); font-size: 20px; font-weight: normal; line-height: 1.5; font-family: Arial, sans-serif;" class=""><a name="Example" title="Follow link" style="color: rgb(59, 115, 175);" class=""></a>Example</h2><div class="panel code" style="margin: 9px 0px; padding: 0px; border: 1px solid rgb(204, 204, 204); background-color: rgb(245, 245, 245); font-size: 12px; line-height: 1.33333333333333; font-family: monospace; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; color: rgb(51, 51, 51);"><div class="codeContent panelContent" style="margin: 0px; padding: 9px 12px;"><pre class="code-java" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal;">class GenericClass&lt;T&gt; { }

protocol MyProtocol { }

class MyClass {
  func myFunction&lt;T, O: GenericClass&lt;T&gt; where T: MyProtocol&gt;(myArg: O) -&gt; T {
    fatalError()
  }
}
</pre></div></div><h2 style="margin: 30px 0px 0px; padding: 0px; color: rgb(51, 51, 51); font-size: 20px; font-weight: normal; line-height: 1.5; font-family: Arial, sans-serif;" class=""><a name="Interestingcrashfacts" title="Follow link" style="color: rgb(59, 115, 175);" class=""></a>Interesting crash facts</h2><ul class="alternate" type="square" style="margin: 10px 0px 0px; color: rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 14px;"><li class="">This used to work with Swift 2.1</li><li class="">This works with the version of Swift that is shipped with Xcode 7.3 beta 2 (7D129n)</li><li class="">It crashes the Swift 2.2 and Swift 3 compiler since the snapshot of 01/11/2016 (that’s the oldest snapshot I have installed)</li><li class="">The code compiles fine with the current master (as of 02/10/2016, commit 073df63) iff&nbsp;<tt style="background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; padding: 1px 3px; background-position: initial initial; background-repeat: initial initial;" class="">myFunction</tt>&nbsp;is a global function and not a method in a class</li></ul></div></body></html>