Skip to content

Commit ff55e8b

Browse files
authored
Merge pull request #13 from MFB-Technologies-Inc/strict-concurrency-fix
Strict concurrency fix
2 parents 98f9fd9 + 5d9085e commit ff55e8b

File tree

3 files changed

+79
-23
lines changed

3 files changed

+79
-23
lines changed

Package.swift

+12-15
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ let package = Package(
99
.library(name: "ArgumentEncoding", targets: ["ArgumentEncoding"]),
1010
],
1111
dependencies: [
12-
.dependencies,
12+
.dependencies(),
1313
],
1414
targets: [
1515
.target(
1616
name: "ArgumentEncoding",
1717
dependencies: [
18-
.dependencies,
18+
.dependencies(),
1919
],
2020
swiftSettings: .swiftSix
2121
),
@@ -32,25 +32,22 @@ let package = Package(
3232
// MARK: PointFree
3333

3434
extension Package.Dependency {
35-
static let dependencies: Package.Dependency = .package(
36-
url: "https://github.com/pointfreeco/swift-dependencies.git",
37-
.upToNextMajor(from: "1.0.0")
38-
)
35+
static func dependencies() -> Package.Dependency {
36+
.package(
37+
url: "https://github.com/pointfreeco/swift-dependencies.git",
38+
.upToNextMajor(from: "1.0.0")
39+
)
40+
}
3941
}
4042

4143
extension Target.Dependency {
42-
static let dependencies: Self = .product(name: "Dependencies", package: "swift-dependencies")
44+
static func dependencies() -> Self {
45+
.product(name: "Dependencies", package: "swift-dependencies")
46+
}
4347
}
4448

4549
extension [SwiftSetting] {
4650
static let swiftSix: Self = [
47-
.enableUpcomingFeature("BareSlashRegexLiterals"),
48-
.enableUpcomingFeature("ConciseMagicFile"),
49-
.enableUpcomingFeature("DeprecateApplicationMain"),
50-
.enableUpcomingFeature("DisableOutwardActorInference"),
51-
.enableUpcomingFeature("ForwardTrailingClosures"),
52-
.enableUpcomingFeature("ImportObjcForwardDeclarations"),
53-
.enableUpcomingFeature("InternalImportsByDefault"),
54-
.enableUpcomingFeature("StrictConcurrency"),
51+
.enableExperimentalFeature("StrictConcurrency"),
5552
]
5653
}

[email protected]

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// swift-tools-version: 6.0
2+
3+
import PackageDescription
4+
5+
let package = Package(
6+
name: "swift-argument-encoding",
7+
platforms: [.macOS(.v12)],
8+
products: [
9+
.library(name: "ArgumentEncoding", targets: ["ArgumentEncoding"]),
10+
],
11+
dependencies: [
12+
.dependencies(),
13+
],
14+
targets: [
15+
.target(
16+
name: "ArgumentEncoding",
17+
dependencies: [
18+
.dependencies(),
19+
]
20+
),
21+
.testTarget(
22+
name: "ArgumentEncodingTests",
23+
dependencies: [
24+
"ArgumentEncoding",
25+
]
26+
),
27+
]
28+
)
29+
30+
// MARK: PointFree
31+
32+
extension Package.Dependency {
33+
static func dependencies() -> Package.Dependency {
34+
.package(
35+
url: "https://github.com/pointfreeco/swift-dependencies.git",
36+
.upToNextMajor(from: "1.0.0")
37+
)
38+
}
39+
}
40+
41+
extension Target.Dependency {
42+
static func dependencies() -> Self {
43+
.product(name: "Dependencies", package: "swift-dependencies")
44+
}
45+
}

Tests/ArgumentEncodingTests/ArgumentGroupTests.swift

+22-8
Original file line numberDiff line numberDiff line change
@@ -250,14 +250,28 @@ final class ArgumentGroupTests: XCTestCase {
250250
}
251251
}
252252

253-
extension Array: ArgumentGroup, FormatterNode {
254-
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
253+
#if swift(>=6)
254+
extension Array: @retroactive ArgumentGroup, @retroactive FormatterNode {
255+
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
255256

256-
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
257-
}
257+
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
258+
}
258259

259-
extension Dictionary: ArgumentGroup, FormatterNode {
260-
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
260+
extension Dictionary: @retroactive ArgumentGroup, @retroactive FormatterNode {
261+
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
261262

262-
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
263-
}
263+
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
264+
}
265+
#else
266+
extension Array: ArgumentGroup, FormatterNode {
267+
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
268+
269+
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
270+
}
271+
272+
extension Dictionary: ArgumentGroup, FormatterNode {
273+
public var flagFormatter: ArgumentEncoding.FlagFormatter { FlagFormatter(prefix: .doubleDash) }
274+
275+
public var optionFormatter: ArgumentEncoding.OptionFormatter { OptionFormatter(prefix: .doubleDash) }
276+
}
277+
#endif

0 commit comments

Comments
 (0)