Swift协议一致性导致分段错误11

我有一个简单的自定义协议,所以类型可以像这样表示为Int:

public protocol IntegerRepresentable { var integerValue: Int { get } } 

并让Int扩展这个协议

 extension Int: IntegerRepresentable { public var integerValue: Int { return self } } 

当我在此示例中使用此代码时,它会引发分段错误11错误:

 protocol P { typealias I: IntegerRepresentable } struct S: P { typealias I = Int } 

我不知道为什么会失败,任何帮助都表示赞赏。