diff --git a/Package.swift b/Package.swift index 1ae242a..6946d58 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.10 +// swift-tools-version:6.0 //===----------------------------------------------------------------------===// // // This source file is part of the SwiftNIO open source project @@ -14,6 +14,20 @@ //===----------------------------------------------------------------------===// import PackageDescription +let strictConcurrencyDevelopment = false + +let strictConcurrencySettings: [SwiftSetting] = { + var initialSettings: [SwiftSetting] = [] + + if strictConcurrencyDevelopment { + // -warnings-as-errors here is a workaround so that IDE-based development can + // get tripped up on -require-explicit-sendable. + initialSettings.append(.unsafeFlags(["-require-explicit-sendable", "-warnings-as-errors"])) + } + + return initialSettings +}() + let package = Package( name: "swift-http-structured-headers", products: [ @@ -29,29 +43,27 @@ let package = Package( targets: [ .target( name: "RawStructuredFieldValues", - dependencies: [] + dependencies: [], + swiftSettings: strictConcurrencySettings ), .target( name: "StructuredFieldValues", - dependencies: ["RawStructuredFieldValues"] + dependencies: ["RawStructuredFieldValues"], + swiftSettings: strictConcurrencySettings ), .executableTarget( name: "sh-parser", - dependencies: ["RawStructuredFieldValues"] + dependencies: ["RawStructuredFieldValues"], + swiftSettings: strictConcurrencySettings ), .testTarget( name: "StructuredFieldValuesTests", - dependencies: ["RawStructuredFieldValues", "StructuredFieldValues"] + dependencies: ["RawStructuredFieldValues", "StructuredFieldValues"], + swiftSettings: strictConcurrencySettings ), ] ) -for target in package.targets { - var settings = target.swiftSettings ?? [] - settings.append(.enableExperimentalFeature("StrictConcurrency=complete")) - target.swiftSettings = settings -} - // --- STANDARD CROSS-REPO SETTINGS DO NOT EDIT --- // for target in package.targets { switch target.type { diff --git a/Sources/RawStructuredFieldValues/FieldParser.swift b/Sources/RawStructuredFieldValues/FieldParser.swift index 696606c..1ccf8ca 100644 --- a/Sources/RawStructuredFieldValues/FieldParser.swift +++ b/Sources/RawStructuredFieldValues/FieldParser.swift @@ -560,7 +560,7 @@ extension StructuredFieldValueParser { let unicodeSequence = byteArray.withUnsafeBytes { $0.withMemoryRebound(to: CChar.self) { // This force-unwrap is safe, as the buffer must successfully bind to CChar. - String(validatingUTF8: $0.baseAddress!) + String(validatingCString: $0.baseAddress!) } }