Skip to content

Commit 855f1f7

Browse files
authored
Mark Triple and its nested types as Sendable (#1579)
This fixes concurrency warnings when building with Swift 6.
1 parent e48fbbf commit 855f1f7

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

Sources/SwiftDriver/Utilities/Triple+Platforms.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,9 +377,9 @@ extension Triple {
377377
/// `tripleVersion >= featureVersion`.
378378
///
379379
/// - SeeAlso: `Triple.supports(_:)`
380-
public struct FeatureAvailability {
380+
public struct FeatureAvailability: Sendable {
381381

382-
public enum Availability {
382+
public enum Availability: Sendable {
383383
case unavailable
384384
case available(since: Version)
385385
case availableInAllVersions

Sources/SwiftDriver/Utilities/Triple.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
///
3333
/// This is a port of https://github.com/apple/swift-llvm/blob/stable/include/llvm/ADT/Triple.h
3434
@dynamicMemberLookup
35-
public struct Triple {
35+
public struct Triple: Sendable {
3636
/// `Triple` proxies predicates from `Triple.OS`, returning `false` for an unknown OS.
3737
public subscript(dynamicMember predicate: KeyPath<OS, Bool>) -> Bool {
3838
os?[keyPath: predicate] ?? false
@@ -60,7 +60,7 @@ public struct Triple {
6060
public let objectFormat: ObjectFormat?
6161

6262
/// Represents a version that may be present in the target triple.
63-
public struct Version: Equatable, Comparable, CustomStringConvertible {
63+
public struct Version: Equatable, Comparable, CustomStringConvertible, Sendable {
6464
public static let zero = Version(0, 0, 0)
6565

6666
public var major: Int
@@ -415,7 +415,7 @@ extension Triple {
415415
}
416416
}
417417

418-
public enum Arch: String, CaseIterable, Decodable {
418+
public enum Arch: String, CaseIterable, Decodable, Sendable {
419419
/// ARM (little endian): arm, armv.*, xscale
420420
case arm
421421
// ARM (big endian): armeb
@@ -841,11 +841,11 @@ extension Triple {
841841
// MARK: - Parse SubArch
842842

843843
extension Triple {
844-
public enum SubArch: Hashable {
844+
public enum SubArch: Hashable, Sendable {
845845

846-
public enum ARM {
846+
public enum ARM: Sendable {
847847

848-
public enum Profile {
848+
public enum Profile: Sendable {
849849
case a, r, m
850850
}
851851

@@ -913,13 +913,13 @@ extension Triple {
913913
}
914914
}
915915

916-
public enum Kalimba {
916+
public enum Kalimba: Sendable {
917917
case v3
918918
case v4
919919
case v5
920920
}
921921

922-
public enum MIPS {
922+
public enum MIPS: Sendable {
923923
case r6
924924
}
925925

@@ -1019,7 +1019,7 @@ extension Triple {
10191019
// MARK: - Parse Vendor
10201020

10211021
extension Triple {
1022-
public enum Vendor: String, CaseIterable, TripleComponent {
1022+
public enum Vendor: String, CaseIterable, TripleComponent, Sendable {
10231023
case apple
10241024
case pc
10251025
case scei
@@ -1084,7 +1084,7 @@ extension Triple {
10841084
// MARK: - Parse OS
10851085

10861086
extension Triple {
1087-
public enum OS: String, CaseIterable, TripleComponent {
1087+
public enum OS: String, CaseIterable, TripleComponent, Sendable {
10881088
case ananas
10891089
case cloudABI = "cloudabi"
10901090
case darwin
@@ -1261,7 +1261,7 @@ extension Triple {
12611261
}
12621262
}
12631263

1264-
public enum Environment: String, CaseIterable, Equatable {
1264+
public enum Environment: String, CaseIterable, Equatable, Sendable {
12651265
case eabihf
12661266
case eabi
12671267
case elfv1
@@ -1357,7 +1357,7 @@ extension Triple {
13571357
// MARK: - Parse Object Format
13581358

13591359
extension Triple {
1360-
public enum ObjectFormat {
1360+
public enum ObjectFormat: Sendable {
13611361
case coff
13621362
case elf
13631363
case macho

0 commit comments

Comments
 (0)