Swift编译器在@objc协议中的associatedtype上崩溃
此代码示例中断了Swift编译器:Swift编译器在@objc协议中的associatedtype上崩溃,swift,Swift,此代码示例中断了Swift编译器: import Foundation @objc protocol Some { associatedtype W } extension Some { func takeW(w: W) -> Void { } } 输出: 0 swift 0x0000000104f583ad PrintStackTraceSignalHandler(void*) + 45 1 swift
import Foundation
@objc protocol Some {
associatedtype W
}
extension Some {
func takeW(w: W) -> Void {
}
}
输出:
0 swift 0x0000000104f583ad PrintStackTraceSignalHandler(void*) + 45
1 swift 0x0000000104f57b56 SignalHandler(int) + 790
2 libsystem_platform.dylib 0x00007fffe7eadbba _sigtramp + 26
3 libsystem_malloc.dylib 0x00007fffe7e21258 malloc + 24
4 swift 0x0000000101f8cd32 llvm::Value* llvm::function_ref<llvm::Value* (unsigned int)>::callback_fn<swift::irgen::emitArchetypeWitnessTableRef(swift::irgen::IRGenFunction&, swift::CanTypeWrapper<swift::ArchetypeType>, swift::ProtocolDecl*)::$_0>(long, unsigned int) + 530
...
While emitting IR SIL function @_TFE4mainPS_4Some5takeWfT1wwx1W_T_ for 'takeW' at main.swift:11:5
关联的类型是Swift唯一的特性,Objective-C不可见,因此应该存在编译器错误
提交了一个bug这可能与以下事实有关,但我不能在此提示之外留下任何见解。尽管如此,不管是什么原因,编译器都不应该崩溃。我测试了这个,得到了同样的崩溃。您可能需要提交Swift错误报告。
swiftc --version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9