From 32f023ee464ef5fb2ab4faa4934511a6c3ccbb41 Mon Sep 17 00:00:00 2001 From: Allan Shortlidge Date: Wed, 24 Jul 2024 13:32:54 -0700 Subject: [PATCH] Migrate to internal imports. As of the Swift 6 compiler, `@_implementationOnly import` is deprecated in favor of `internal import` and as a result the use of `@_implementationOnly import` in this project is generating a lot of diagnostic noise when building the Swift standard library. For Swift libraries with library evolution, `@_implementationOnly import` and `internal import` are roughly functionally equivalent, aside from improved diagnostics for `internal import`. For non-resilient libraries, the main difference is that `internal import` does not actually hide a module dependency from downstream clients because the layout of a type in a non-resilient library may depend on types coming from an `internal import` (with `@_implementationOnly import` the same situation would result in a silent mis-compile, which is the reason that `@_implementationOnly import` is deprecated). The `_RegexParser` module dependency does not need to be hidden from clients since it is installed in standard locations in the SDK/toolchain. Therefore this migration should be safe, regardless of library resilience mode. --- Sources/RegexBenchmark/Benchmark.swift | 2 +- Sources/RegexBuilder/Anchor.swift | 2 +- Sources/RegexBuilder/CharacterClass.swift | 2 +- Sources/RegexBuilder/DSL.swift | 2 +- Sources/_StringProcessing/ByteCodeGen.swift | 2 +- Sources/_StringProcessing/Capture.swift | 2 +- Sources/_StringProcessing/Compiler.swift | 2 +- Sources/_StringProcessing/ConsumerInterface.swift | 2 +- Sources/_StringProcessing/Engine/InstPayload.swift | 2 +- Sources/_StringProcessing/Engine/MEBuilder.swift | 2 +- Sources/_StringProcessing/Engine/MEBuiltins.swift | 2 +- Sources/_StringProcessing/Engine/MECapture.swift | 2 +- Sources/_StringProcessing/Engine/MEProgram.swift | 2 +- Sources/_StringProcessing/Engine/Registers.swift | 2 +- Sources/_StringProcessing/Engine/Structuralize.swift | 2 +- Sources/_StringProcessing/Executor.swift | 2 +- Sources/_StringProcessing/LiteralPrinter.swift | 2 +- Sources/_StringProcessing/MatchingOptions.swift | 2 +- Sources/_StringProcessing/PrintAsPattern.swift | 2 +- Sources/_StringProcessing/Regex/ASTConversion.swift | 2 +- Sources/_StringProcessing/Regex/AnyRegexOutput.swift | 2 +- Sources/_StringProcessing/Regex/Core.swift | 2 +- Sources/_StringProcessing/Regex/DSLTree.swift | 2 +- Sources/_StringProcessing/Regex/Options.swift | 2 +- Sources/_StringProcessing/Utility/ASTBuilder.swift | 2 +- Sources/_StringProcessing/Utility/TypeVerification.swift | 2 +- Sources/_StringProcessing/_CharacterClassModel.swift | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Sources/RegexBenchmark/Benchmark.swift b/Sources/RegexBenchmark/Benchmark.swift index f807a8e55..3a967c022 100644 --- a/Sources/RegexBenchmark/Benchmark.swift +++ b/Sources/RegexBenchmark/Benchmark.swift @@ -1,5 +1,5 @@ @_spi(RegexBenchmark) import _StringProcessing -@_implementationOnly import _RegexParser +internal import _RegexParser import Foundation protocol RegexBenchmark: Debug { diff --git a/Sources/RegexBuilder/Anchor.swift b/Sources/RegexBuilder/Anchor.swift index 86be6ce0b..ee3d5c2f8 100644 --- a/Sources/RegexBuilder/Anchor.swift +++ b/Sources/RegexBuilder/Anchor.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @_spi(RegexBuilder) import _StringProcessing /// A regex component that matches a specific condition at a particular position diff --git a/Sources/RegexBuilder/CharacterClass.swift b/Sources/RegexBuilder/CharacterClass.swift index cab0ab29b..0ec1b1662 100644 --- a/Sources/RegexBuilder/CharacterClass.swift +++ b/Sources/RegexBuilder/CharacterClass.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @_spi(RegexBuilder) import _StringProcessing /// A class of characters that match in a regex. diff --git a/Sources/RegexBuilder/DSL.swift b/Sources/RegexBuilder/DSL.swift index 5e792e086..42266466f 100644 --- a/Sources/RegexBuilder/DSL.swift +++ b/Sources/RegexBuilder/DSL.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @_spi(RegexBuilder) import _StringProcessing @available(SwiftStdlib 5.7, *) diff --git a/Sources/_StringProcessing/ByteCodeGen.swift b/Sources/_StringProcessing/ByteCodeGen.swift index 00afca28b..5fb8e89c7 100644 --- a/Sources/_StringProcessing/ByteCodeGen.swift +++ b/Sources/_StringProcessing/ByteCodeGen.swift @@ -12,7 +12,7 @@ @_spi(_Unicode) import Swift -@_implementationOnly import _RegexParser +internal import _RegexParser extension Compiler { struct ByteCodeGen { diff --git a/Sources/_StringProcessing/Capture.swift b/Sources/_StringProcessing/Capture.swift index 696a85361..82469f3a1 100644 --- a/Sources/_StringProcessing/Capture.swift +++ b/Sources/_StringProcessing/Capture.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser // TODO: Where should this live? Inside TypeConstruction? func constructExistentialOutputComponent( diff --git a/Sources/_StringProcessing/Compiler.swift b/Sources/_StringProcessing/Compiler.swift index 34b0962d8..530788266 100644 --- a/Sources/_StringProcessing/Compiler.swift +++ b/Sources/_StringProcessing/Compiler.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser class Compiler { let tree: DSLTree diff --git a/Sources/_StringProcessing/ConsumerInterface.swift b/Sources/_StringProcessing/ConsumerInterface.swift index bba659ebb..c842b8ba6 100644 --- a/Sources/_StringProcessing/ConsumerInterface.swift +++ b/Sources/_StringProcessing/ConsumerInterface.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser extension Character { var _singleScalarAsciiValue: UInt8? { diff --git a/Sources/_StringProcessing/Engine/InstPayload.swift b/Sources/_StringProcessing/Engine/InstPayload.swift index 2dad567b6..41293c6f2 100644 --- a/Sources/_StringProcessing/Engine/InstPayload.swift +++ b/Sources/_StringProcessing/Engine/InstPayload.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser extension Instruction { /// An instruction's payload packs operands and destination diff --git a/Sources/_StringProcessing/Engine/MEBuilder.swift b/Sources/_StringProcessing/Engine/MEBuilder.swift index 844ead08e..cd43dc764 100644 --- a/Sources/_StringProcessing/Engine/MEBuilder.swift +++ b/Sources/_StringProcessing/Engine/MEBuilder.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser // For errors +internal import _RegexParser // For errors extension MEProgram { struct Builder { diff --git a/Sources/_StringProcessing/Engine/MEBuiltins.swift b/Sources/_StringProcessing/Engine/MEBuiltins.swift index 87d99247a..ab47a1a5f 100644 --- a/Sources/_StringProcessing/Engine/MEBuiltins.swift +++ b/Sources/_StringProcessing/Engine/MEBuiltins.swift @@ -1,4 +1,4 @@ -@_implementationOnly import _RegexParser // For AssertionKind +internal import _RegexParser // For AssertionKind extension Character { var _isHorizontalWhitespace: Bool { self.unicodeScalars.first?.isHorizontalWhitespace == true diff --git a/Sources/_StringProcessing/Engine/MECapture.swift b/Sources/_StringProcessing/Engine/MECapture.swift index 1964c9b8e..3dfda6b94 100644 --- a/Sources/_StringProcessing/Engine/MECapture.swift +++ b/Sources/_StringProcessing/Engine/MECapture.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser /* diff --git a/Sources/_StringProcessing/Engine/MEProgram.swift b/Sources/_StringProcessing/Engine/MEProgram.swift index 3107d5ef7..e144cf932 100644 --- a/Sources/_StringProcessing/Engine/MEProgram.swift +++ b/Sources/_StringProcessing/Engine/MEProgram.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser struct MEProgram { typealias Input = String diff --git a/Sources/_StringProcessing/Engine/Registers.swift b/Sources/_StringProcessing/Engine/Registers.swift index 69cc3e30a..7c0d8e2a7 100644 --- a/Sources/_StringProcessing/Engine/Registers.swift +++ b/Sources/_StringProcessing/Engine/Registers.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser struct SentinelValue: Hashable, CustomStringConvertible { var description: String { "" } diff --git a/Sources/_StringProcessing/Engine/Structuralize.swift b/Sources/_StringProcessing/Engine/Structuralize.swift index 32d7a6204..df109083c 100644 --- a/Sources/_StringProcessing/Engine/Structuralize.swift +++ b/Sources/_StringProcessing/Engine/Structuralize.swift @@ -1,4 +1,4 @@ -@_implementationOnly import _RegexParser +internal import _RegexParser extension CaptureList { @available(SwiftStdlib 5.7, *) diff --git a/Sources/_StringProcessing/Executor.swift b/Sources/_StringProcessing/Executor.swift index 92fd91b7d..5cf702514 100644 --- a/Sources/_StringProcessing/Executor.swift +++ b/Sources/_StringProcessing/Executor.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser struct Executor { // TODO: consider let, for now lets us toggle tracing diff --git a/Sources/_StringProcessing/LiteralPrinter.swift b/Sources/_StringProcessing/LiteralPrinter.swift index 4c85c4b49..5c136827c 100644 --- a/Sources/_StringProcessing/LiteralPrinter.swift +++ b/Sources/_StringProcessing/LiteralPrinter.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @available(SwiftStdlib 5.7, *) extension Regex { diff --git a/Sources/_StringProcessing/MatchingOptions.swift b/Sources/_StringProcessing/MatchingOptions.swift index a5f470ec0..a679339e9 100644 --- a/Sources/_StringProcessing/MatchingOptions.swift +++ b/Sources/_StringProcessing/MatchingOptions.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser /// A type that represents the current state of regex matching options, with /// stack-based scoping. diff --git a/Sources/_StringProcessing/PrintAsPattern.swift b/Sources/_StringProcessing/PrintAsPattern.swift index 22dd3756d..34ca44f0d 100644 --- a/Sources/_StringProcessing/PrintAsPattern.swift +++ b/Sources/_StringProcessing/PrintAsPattern.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser // TODO: Add an expansion level, both from top to bottom. // After `printAsCanonical` is fleshed out, these two diff --git a/Sources/_StringProcessing/Regex/ASTConversion.swift b/Sources/_StringProcessing/Regex/ASTConversion.swift index d9ba470e6..49094d4f1 100644 --- a/Sources/_StringProcessing/Regex/ASTConversion.swift +++ b/Sources/_StringProcessing/Regex/ASTConversion.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser extension AST { var dslTree: DSLTree { diff --git a/Sources/_StringProcessing/Regex/AnyRegexOutput.swift b/Sources/_StringProcessing/Regex/AnyRegexOutput.swift index 57bf06dae..0a76f2d86 100644 --- a/Sources/_StringProcessing/Regex/AnyRegexOutput.swift +++ b/Sources/_StringProcessing/Regex/AnyRegexOutput.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser /// The type-erased, dynamic output of a regular expression match. /// diff --git a/Sources/_StringProcessing/Regex/Core.swift b/Sources/_StringProcessing/Regex/Core.swift index 78b8d1842..16c5c6601 100644 --- a/Sources/_StringProcessing/Regex/Core.swift +++ b/Sources/_StringProcessing/Regex/Core.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser /// A type that represents a regular expression. /// diff --git a/Sources/_StringProcessing/Regex/DSLTree.swift b/Sources/_StringProcessing/Regex/DSLTree.swift index 2cc4d032f..8d6a5fbc7 100644 --- a/Sources/_StringProcessing/Regex/DSLTree.swift +++ b/Sources/_StringProcessing/Regex/DSLTree.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @_spi(RegexBuilder) public struct DSLTree { diff --git a/Sources/_StringProcessing/Regex/Options.swift b/Sources/_StringProcessing/Regex/Options.swift index d8ca30e56..6911af911 100644 --- a/Sources/_StringProcessing/Regex/Options.swift +++ b/Sources/_StringProcessing/Regex/Options.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @available(SwiftStdlib 5.7, *) extension Regex { diff --git a/Sources/_StringProcessing/Utility/ASTBuilder.swift b/Sources/_StringProcessing/Utility/ASTBuilder.swift index 49f9e9b11..fdb215645 100644 --- a/Sources/_StringProcessing/Utility/ASTBuilder.swift +++ b/Sources/_StringProcessing/Utility/ASTBuilder.swift @@ -25,7 +25,7 @@ AST. */ -@_implementationOnly import _RegexParser +internal import _RegexParser func alt(_ asts: [AST.Node]) -> AST.Node { return .alternation( diff --git a/Sources/_StringProcessing/Utility/TypeVerification.swift b/Sources/_StringProcessing/Utility/TypeVerification.swift index c5043bf97..11796d1e3 100644 --- a/Sources/_StringProcessing/Utility/TypeVerification.swift +++ b/Sources/_StringProcessing/Utility/TypeVerification.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser @available(SwiftStdlib 5.7, *) extension Regex { diff --git a/Sources/_StringProcessing/_CharacterClassModel.swift b/Sources/_StringProcessing/_CharacterClassModel.swift index 53e7b2e65..a82d8e8cd 100644 --- a/Sources/_StringProcessing/_CharacterClassModel.swift +++ b/Sources/_StringProcessing/_CharacterClassModel.swift @@ -9,7 +9,7 @@ // //===----------------------------------------------------------------------===// -@_implementationOnly import _RegexParser +internal import _RegexParser // NOTE: This is a model type. We want to be able to get one from // an AST, but this isn't a natural thing to produce in the context