title: Swift protocol defining class method returning self
body: <p>I had code that was working in XCode 6 beta but stopped working recently after updating to xcode 6.1.</p>
  
  <p>This is my protocol:</p>
  
  <pre><code>protocol CanDeserialiseFromJson {
      class func FromJson(json : JSONValue) -&gt; Self
  }
  </code></pre>
  
  <p>This is implementation:</p>
  
  <pre><code>extension Invoice : CanDeserialiseFromJson {
      class func FromJson(json : JSONValue) -&gt; Self {
          return Invoice()
      }
  }
  </code></pre>
  
  <p>This fails giving error:</p>
  
  <pre><code>'Invoice' is not convertable to 'Self'
  </code></pre>
  
  <p>As I said, this used to work and I can't work out why it doesn't anymore</p>