Skip to content

Commit 8e01d32

Browse files
authored
Enable strict concurrency (#82)
Motivation: To catch potential data races at build time. Modifications: - Enable strict concurrency in Package.swift. - Update CI flags. Result: Strict concurrency adoption.
1 parent baf704f commit 8e01d32

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ jobs:
1313
with:
1414
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1515
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
16-
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
17-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
18-
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
16+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
17+
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
18+
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
1919
windows_6_0_enabled: true
2020
windows_nightly_6_0_enabled: true
2121
windows_nightly_main_enabled: true

.github/workflows/pull_request.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
with:
1818
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1919
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
20-
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
21-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
22-
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
20+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
21+
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
22+
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
2323
windows_6_0_enabled: true
2424
windows_nightly_6_0_enabled: true
2525
windows_nightly_main_enabled: true

Package.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ let package = Package(
3131
]
3232
)
3333

34+
for target in package.targets {
35+
var settings = target.swiftSettings ?? []
36+
settings.append(.enableExperimentalFeature("StrictConcurrency=complete"))
37+
target.swiftSettings = settings
38+
}
39+
3440
// --- STANDARD CROSS-REPO SETTINGS DO NOT EDIT --- //
3541
for target in package.targets {
3642
if target.type != .plugin {

0 commit comments

Comments
 (0)