How to fix Segmentation fault: 11 with @propertyWrapper
I recently encountered a small but annoying bug with property wrappers in Swift 5.1. When building the following code for archiving/profiling:
@propertyWrapper
public struct Foo<T> {
public let wrappedValue: T?
public init(wrappedValue: T? = nil) {
self.wrappedValue = wrappedValue
}
}
The compiler throws a Segmentation fault: 11
:
While running pass #0 SILModuleTransform "SerializeSILPass".
The fix is rather simple. Simply break init(wrappedValue:)
(which contains a default nil
value) into two separate initializers, like so:
@propertyWrapper
public struct Foo<T> {
public let wrappedValue: T?
public init(wrappedValue: T?) {
self.wrappedValue = wrappedValue
}
public init() {
self.init(wrappedValue: nil)
}
}
17
Kudos
17
Kudos