Skip to content

Enable MemberImportVisibility upcoming feature in Foundation #1280

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,10 @@ let availabilityMacros: [SwiftSetting] = versionNumbers.flatMap { version in
}
}

let concurrencyChecking: [SwiftSetting] = [
let featureSettings: [SwiftSetting] = [
.enableExperimentalFeature("StrictConcurrency"),
.enableUpcomingFeature("InferSendableFromCaptures")
.enableUpcomingFeature("InferSendableFromCaptures"),
.enableUpcomingFeature("MemberImportVisibility")
]

var dependencies: [Package.Dependency] {
Expand Down Expand Up @@ -98,7 +99,7 @@ let package = Package(
"FoundationInternationalization",
],
cSettings: wasiLibcCSettings,
swiftSettings: availabilityMacros + concurrencyChecking
swiftSettings: availabilityMacros + featureSettings
),

// FoundationEssentials
Expand Down Expand Up @@ -134,7 +135,7 @@ let package = Package(
swiftSettings: [
.enableExperimentalFeature("VariadicGenerics"),
.enableExperimentalFeature("AccessLevelOnImport")
] + availabilityMacros + concurrencyChecking,
] + availabilityMacros + featureSettings,
linkerSettings: [
.linkedLibrary("wasi-emulated-getpid", .when(platforms: [.wasi])),
]
Expand All @@ -148,7 +149,7 @@ let package = Package(
resources: [
.copy("Resources")
],
swiftSettings: availabilityMacros + concurrencyChecking
swiftSettings: availabilityMacros + featureSettings
),

// FoundationInternationalization
Expand All @@ -172,7 +173,7 @@ let package = Package(
cSettings: wasiLibcCSettings,
swiftSettings: [
.enableExperimentalFeature("AccessLevelOnImport")
] + availabilityMacros + concurrencyChecking
] + availabilityMacros + featureSettings
),

.testTarget(
Expand All @@ -181,7 +182,7 @@ let package = Package(
"TestSupport",
"FoundationInternationalization",
],
swiftSettings: availabilityMacros + concurrencyChecking
swiftSettings: availabilityMacros + featureSettings
),

// FoundationMacros
Expand All @@ -198,7 +199,7 @@ let package = Package(
exclude: ["CMakeLists.txt"],
swiftSettings: [
.enableExperimentalFeature("AccessLevelOnImport")
] + availabilityMacros + concurrencyChecking
] + availabilityMacros + featureSettings
),
]
)
Expand All @@ -213,7 +214,7 @@ package.targets.append(contentsOf: [
"FoundationMacros",
"TestSupport"
],
swiftSettings: availabilityMacros + concurrencyChecking
swiftSettings: availabilityMacros + featureSettings
)
])
#endif
3 changes: 2 additions & 1 deletion Sources/FoundationEssentials/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ target_compile_options(FoundationEssentials PRIVATE
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend VariadicGenerics>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend AccessLevelOnImport>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend StrictConcurrency>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>")
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend MemberImportVisibility>")
target_compile_options(FoundationEssentials PRIVATE ${_SwiftFoundation_availability_macros})
target_compile_options(FoundationEssentials PRIVATE ${_SwiftFoundation_wasi_libc_flags})
target_compile_options(FoundationEssentials PRIVATE -package-name "SwiftFoundation")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ import WinSDK
@preconcurrency import WASILibc
#endif

#if FOUNDATION_FRAMEWORK
internal import Foundation_Private
#endif

#if os(Windows)
extension _FILE_ID_128 /* : @retroactive Equatable */ {
internal static func _equals(_ lhs: _FILE_ID_128, _ rhs: _FILE_ID_128) -> Bool {
Expand Down
4 changes: 4 additions & 0 deletions Sources/FoundationEssentials/Locale/Locale+Language.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
//
//===----------------------------------------------------------------------===//

#if FOUNDATION_FRAMEWORK
internal import Foundation_Private
#endif

extension Locale {

@available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
Expand Down
1 change: 1 addition & 0 deletions Sources/FoundationEssentials/URL/URLParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#if FOUNDATION_FRAMEWORK
internal import _ForSwiftFoundation
internal import Foundation_Private
#endif

// Source of truth for a parsed URL
Expand Down
4 changes: 4 additions & 0 deletions Sources/FoundationEssentials/URL/URL_Swift.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ import WinSDK
@preconcurrency import WASILibc
#endif

#if canImport(os)
internal import os
#endif

/// `_SwiftURL` provides the new Swift implementation for `URL`, using the same parser
/// and `URLParseInfo` as `URLComponents`, but with a few compatibility behaviors.
///
Expand Down
3 changes: 2 additions & 1 deletion Sources/FoundationInternationalization/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ add_subdirectory(TimeZone)
target_compile_options(FoundationInternationalization PRIVATE
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend AccessLevelOnImport>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend StrictConcurrency>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>")
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend MemberImportVisibility>")
target_compile_options(FoundationInternationalization PRIVATE ${_SwiftFoundation_availability_macros})
target_compile_options(FoundationInternationalization PRIVATE ${_SwiftFoundation_wasi_libc_flags})
target_compile_options(FoundationInternationalization PRIVATE -package-name "SwiftFoundation")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ internal import _FoundationICU
internal import os
#endif

#if canImport(FoundationEssentials)
import FoundationEssentials
#endif

enum ICU { }

internal struct ICUError: Error, CustomDebugStringConvertible {
Expand Down
3 changes: 3 additions & 0 deletions Sources/FoundationInternationalization/URLParser+ICU.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
#if canImport(FoundationEssentials)
import FoundationEssentials
#endif
#if FOUNDATION_FRAMEWORK
internal import Foundation_Private
#endif

internal import _FoundationICU

Expand Down
1 change: 1 addition & 0 deletions Sources/FoundationMacros/BundleMacro.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import SwiftSyntax
import SwiftSyntaxMacros
internal import SwiftSyntaxBuilder

public struct BundleMacro: SwiftSyntaxMacros.ExpressionMacro, Sendable {
public static func expansion(of node: some FreestandingMacroExpansionSyntax, in context: some MacroExpansionContext) throws -> ExprSyntax {
Expand Down
3 changes: 2 additions & 1 deletion Sources/FoundationMacros/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ target_sources(FoundationMacros PRIVATE
target_compile_options(FoundationMacros PRIVATE
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend AccessLevelOnImport>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend StrictConcurrency>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>")
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferSendableFromCaptures>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend MemberImportVisibility>")

target_link_libraries(FoundationMacros PUBLIC
SwiftSyntax::SwiftSyntax
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,6 @@
@testable import Foundation
#endif
import Testing
#if FOUNDATION_FRAMEWORK
@_spi(Unstable) internal import CollectionsInternal
#elseif canImport(_RopeModule)
internal import _RopeModule
#elseif canImport(_FoundationCollections)
internal import _FoundationCollections
#endif

extension String {
fileprivate func encoded(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,6 @@
@testable import Foundation
#endif
import Testing
#if FOUNDATION_FRAMEWORK
@_spi(Unstable) internal import CollectionsInternal
#elseif canImport(_RopeModule)
internal import _RopeModule
#elseif canImport(_FoundationCollections)
internal import _FoundationCollections
#endif

//
// These test cases are (mostly) from RFC 6570.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ import struct FoundationEssentials.URL
import struct Foundation.URL
#endif
import Testing
#if FOUNDATION_FRAMEWORK
@_spi(Unstable) internal import CollectionsInternal
#elseif canImport(_RopeModule)
internal import _RopeModule
#elseif canImport(_FoundationCollections)
internal import _FoundationCollections

#if canImport(CollectionsInternal)
internal import CollectionsInternal
#elseif canImport(OrderedCollections)
internal import OrderedCollections
#endif

@Suite("URL.Template Value")
Expand Down