Skip to content

Commit 1568dcd

Browse files
committed
Use .enableUpcomingFeature() for StrictConcurrency and InternalImportsByDefault.
Both the `StrictConcurrency` and `InternalImportsByDefault` features became "upcoming" features instead of "experimental" features in the Swift 6 compiler. This means that specifying those features with `.enableExperimentalFeature()` no longer works, and therefore these settings in SwiftPM's Package.swift have become inactive. I'm making the compiler more lenient, so that `-enable-experimental-feature` will enable the corresponding upcoming feature if relevant (swiftlang/swift#75962) but in the meantime it appears that some of the code in SwiftPM needs some fixes to continue to be accepted by the compiler with these features on. Additionally, I've removed explicit enablement of `AccessLevelOnImports` since that feature became standard in the Swift 5.10 compiler.
1 parent 5e22d1b commit 1568dcd

File tree

6 files changed

+11
-14
lines changed

6 files changed

+11
-14
lines changed

Package.swift

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ let package = Package(
171171
],
172172
exclude: ["CMakeLists.txt"],
173173
swiftSettings: [
174-
.enableExperimentalFeature("AccessLevelOnImport"),
175174
.unsafeFlags(["-static"]),
176175
]
177176
),
@@ -187,9 +186,8 @@ let package = Package(
187186
],
188187
exclude: ["CMakeLists.txt"],
189188
swiftSettings: [
190-
.enableExperimentalFeature("StrictConcurrency"),
191-
.enableExperimentalFeature("AccessLevelOnImport"),
192-
.enableExperimentalFeature("InternalImportsByDefault"),
189+
.enableUpcomingFeature("StrictConcurrency"),
190+
.enableUpcomingFeature("InternalImportsByDefault"),
193191
.unsafeFlags(["-static"]),
194192
]
195193
),
@@ -207,8 +205,7 @@ let package = Package(
207205
],
208206
exclude: ["CMakeLists.txt", "Vendor/README.md"],
209207
swiftSettings: [
210-
.enableExperimentalFeature("StrictConcurrency"),
211-
.enableExperimentalFeature("AccessLevelOnImport"),
208+
.enableUpcomingFeature("StrictConcurrency"),
212209
.unsafeFlags(["-static"]),
213210
]
214211
),
@@ -582,7 +579,7 @@ let package = Package(
582579
.product(name: "Crypto", package: "swift-crypto"),
583580
],
584581
swiftSettings: [
585-
.enableExperimentalFeature("StrictConcurrency=complete"),
582+
.enableUpcomingFeature("StrictConcurrency"),
586583
.unsafeFlags(["-static"]),
587584
]
588585
),

Sources/_AsyncFileSystem/AsyncFileSystem.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import protocol _Concurrency.Actor
14-
@preconcurrency import struct SystemPackage.Errno
15-
@preconcurrency import struct SystemPackage.FilePath
14+
@preconcurrency package import struct SystemPackage.Errno
15+
@preconcurrency package import struct SystemPackage.FilePath
1616

1717
/// An abstract file system protocol with first-class support for Swift Concurrency.
1818
package protocol AsyncFileSystem: Actor {

Sources/_AsyncFileSystem/MockFileSystem.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
@preconcurrency import struct SystemPackage.FilePath
13+
@preconcurrency package import struct SystemPackage.FilePath
1414

1515
/// In-memory implementation of `AsyncFileSystem` for mocking and testing purposes.
1616
package actor MockFileSystem: AsyncFileSystem {

Sources/_AsyncFileSystem/OpenReadableFile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
internal import class Dispatch.DispatchQueue
14-
import struct SystemPackage.FileDescriptor
14+
internal import struct SystemPackage.FileDescriptor
1515

1616
/// A read-only thread-safe handle to an open file.
1717
package struct OpenReadableFile: Sendable {

Sources/_AsyncFileSystem/OpenWritableFile.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
internal import class Dispatch.DispatchQueue
14-
@preconcurrency import struct SystemPackage.FileDescriptor
15-
import struct SystemPackage.FilePath
14+
@preconcurrency internal import struct SystemPackage.FileDescriptor
15+
internal import struct SystemPackage.FilePath
1616

1717
/// A write-only thread-safe handle to an open file.
1818
package actor OpenWritableFile: WritableStream {

Sources/_AsyncFileSystem/ReadableFileStream.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import _Concurrency
14-
import SystemPackage
14+
internal import SystemPackage
1515
internal import class Dispatch.DispatchQueue
1616

1717
/// Type-erasure wrapper over underlying file system readable streams.

0 commit comments

Comments
 (0)