title: Protocol adoption by extension causing "Abort trap: 6" on Xcode 8.3.2/Swift 3.1
body: <p>The following code causes the Swift compiler to crash with <code>Command failed due to signal: Abort trap 6</code>:</p>
  
  <pre><code>import UIKit
  
  protocol ZeroProtocol {
      static var zero: Self { get }
  }
  
  // CGPoint already has CGPoint.zero so we attempt to adopt ZeroProtocol.
  // This causes "Abort trap: 6" on compilation.
  extension CGPoint: ZeroProtocol {} 
  </code></pre>
  
  <p>I'm almost certain that this code compiled a few months ago without trouble. Strangely, adopting the protocol with my own struct doesn't produce any error:</p>
  
  <pre><code>import UIKit
  
  protocol ZeroProtocol {
      static var zero: Self { get }
  }
  
  struct TestStruct {
      static var zero = TestStruct()
  }
  
  // Works fine.
  extension TestStruct: ZeroProtocol {}
  </code></pre>
  
  <p>I have submitted a bug report to Apple, but any <strong>workaround</strong> would be appreciated.</p>