Skip to content

Commit b3b8fee

Browse files
committed
Add remaining availability annotations.
Tests now have flag `-disable-availability-checking` because XCTests always test the just-built modules, rather than the modules in the OS.
1 parent da89bf7 commit b3b8fee

25 files changed

+873
-50
lines changed

Package.swift

+23-17
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ let availabilityDefinition = PackageDescription.SwiftSetting.unsafeFlags([
77
"-Xfrontend",
88
"-define-availability",
99
"-Xfrontend",
10-
#""SwiftStdlib 5.7:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999""#
10+
#"SwiftStdlib 5.7:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999"#,
1111
])
1212

1313
let package = Package(
@@ -66,44 +66,50 @@ let package = Package(
6666
.testTarget(
6767
name: "RegexTests",
6868
dependencies: ["_StringProcessing"],
69-
swiftSettings: [availabilityDefinition]),
69+
swiftSettings: [
70+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
71+
]),
7072
.testTarget(
7173
name: "RegexBuilderTests",
7274
dependencies: ["_StringProcessing", "RegexBuilder"],
7375
swiftSettings: [
7476
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"]),
75-
availabilityDefinition
77+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
7678
]),
7779
.target(
7880
name: "Prototypes",
7981
dependencies: ["_RegexParser", "_StringProcessing"],
80-
swiftSettings: [availabilityDefinition]),
82+
swiftSettings: [
83+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
84+
]),
8185

8286
// MARK: Scripts
8387
.executableTarget(
8488
name: "VariadicsGenerator",
8589
dependencies: [
86-
.product(name: "ArgumentParser", package: "swift-argument-parser")
90+
.product(name: "ArgumentParser", package: "swift-argument-parser")
8791
]),
8892
.executableTarget(
8993
name: "PatternConverter",
9094
dependencies: [
91-
.product(name: "ArgumentParser", package: "swift-argument-parser"),
92-
"_RegexParser",
93-
"_StringProcessing"
95+
.product(name: "ArgumentParser", package: "swift-argument-parser"),
96+
"_RegexParser",
97+
"_StringProcessing"
9498
]),
9599

96100
// MARK: Exercises
97101
.target(
98-
name: "Exercises",
99-
dependencies: ["_RegexParser", "Prototypes", "_StringProcessing", "RegexBuilder"],
100-
swiftSettings: [
101-
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"]),
102-
availabilityDefinition
103-
]),
102+
name: "Exercises",
103+
dependencies: ["_RegexParser", "Prototypes", "_StringProcessing", "RegexBuilder"],
104+
swiftSettings: [
105+
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"]),
106+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
107+
]),
104108
.testTarget(
105-
name: "ExercisesTests",
106-
dependencies: ["Exercises"],
107-
swiftSettings: [availabilityDefinition]),
109+
name: "ExercisesTests",
110+
dependencies: ["Exercises"],
111+
swiftSettings: [
112+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
113+
])
108114
]
109115
)

Sources/RegexBuilder/Anchor.swift

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public struct Anchor {
2929
var isInverted: Bool = false
3030
}
3131

32+
@available(SwiftStdlib 5.7, *)
3233
extension Anchor: RegexComponent {
3334
var astAssertion: AST.Atom.AssertionKind {
3435
if !isInverted {
@@ -63,6 +64,7 @@ extension Anchor: RegexComponent {
6364

6465
// MARK: - Public API
6566

67+
@available(SwiftStdlib 5.7, *)
6668
extension Anchor {
6769
public static var startOfSubject: Anchor {
6870
Anchor(kind: .startOfSubject)

Sources/RegexBuilder/CharacterClass.swift

+7
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,21 @@ public struct CharacterClass {
3737
}
3838
}
3939

40+
@available(SwiftStdlib 5.7, *)
4041
extension CharacterClass: RegexComponent {
4142
public var regex: Regex<Substring> {
4243
return Regex(node: DSLTree.Node.customCharacterClass(ccc))
4344
}
4445
}
4546

47+
@available(SwiftStdlib 5.7, *)
4648
extension CharacterClass {
4749
public var inverted: CharacterClass {
4850
CharacterClass(ccc.inverted)
4951
}
5052
}
5153

54+
@available(SwiftStdlib 5.7, *)
5255
extension RegexComponent where Self == CharacterClass {
5356
public static var any: CharacterClass {
5457
.init(DSLTree.CustomCharacterClass(members: [.atom(.any)]))
@@ -91,6 +94,7 @@ extension RegexComponent where Self == CharacterClass {
9194
}
9295
}
9396

97+
@available(SwiftStdlib 5.7, *)
9498
extension RegexComponent where Self == CharacterClass {
9599
/// Returns a character class that matches any character in the given string
96100
/// or sequence.
@@ -112,6 +116,7 @@ extension RegexComponent where Self == CharacterClass {
112116
}
113117

114118
// Unicode properties
119+
@available(SwiftStdlib 5.7, *)
115120
extension CharacterClass {
116121
public static func generalCategory(_ category: Unicode.GeneralCategory) -> CharacterClass {
117122
guard let extendedCategory = category.extendedGeneralCategory else {
@@ -179,6 +184,7 @@ extension Unicode.GeneralCategory {
179184

180185
// MARK: - Set algebra methods
181186

187+
@available(SwiftStdlib 5.7, *)
182188
extension RegexComponent where Self == CharacterClass {
183189
public init(_ first: CharacterClass, _ rest: CharacterClass...) {
184190
if rest.isEmpty {
@@ -191,6 +197,7 @@ extension RegexComponent where Self == CharacterClass {
191197
}
192198
}
193199

200+
@available(SwiftStdlib 5.7, *)
194201
extension CharacterClass {
195202
public func union(_ other: CharacterClass) -> CharacterClass {
196203
CharacterClass(.init(members: [

Sources/RegexBuilder/DSL.swift

+10
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import _RegexParser
1313
@_spi(RegexBuilder) import _StringProcessing
1414

15+
@available(SwiftStdlib 5.7, *)
1516
extension Regex {
1617
public init<Content: RegexComponent>(
1718
@RegexComponentBuilder _ content: () -> Content
@@ -22,10 +23,12 @@ extension Regex {
2223

2324
// A convenience protocol for builtin regex components that are initialized with
2425
// a `DSLTree` node.
26+
@available(SwiftStdlib 5.7, *)
2527
internal protocol _BuiltinRegexComponent: RegexComponent {
2628
init(_ regex: Regex<RegexOutput>)
2729
}
2830

31+
@available(SwiftStdlib 5.7, *)
2932
extension _BuiltinRegexComponent {
3033
init(node: DSLTree.Node) {
3134
self.init(Regex(node: node))
@@ -34,6 +37,7 @@ extension _BuiltinRegexComponent {
3437

3538
// MARK: - Primitive regex components
3639

40+
@available(SwiftStdlib 5.7, *)
3741
extension String: RegexComponent {
3842
public typealias Output = Substring
3943

@@ -42,6 +46,7 @@ extension String: RegexComponent {
4246
}
4347
}
4448

49+
@available(SwiftStdlib 5.7, *)
4550
extension Substring: RegexComponent {
4651
public typealias Output = Substring
4752

@@ -50,6 +55,7 @@ extension Substring: RegexComponent {
5055
}
5156
}
5257

58+
@available(SwiftStdlib 5.7, *)
5359
extension Character: RegexComponent {
5460
public typealias Output = Substring
5561

@@ -58,6 +64,7 @@ extension Character: RegexComponent {
5864
}
5965
}
6066

67+
@available(SwiftStdlib 5.7, *)
6168
extension UnicodeScalar: RegexComponent {
6269
public typealias Output = Substring
6370

@@ -110,6 +117,7 @@ public struct QuantificationBehavior {
110117
extension DSLTree.Node {
111118
/// Generates a DSLTree node for a repeated range of the given DSLTree node.
112119
/// Individual public API functions are in the generated Variadics.swift file.
120+
@available(SwiftStdlib 5.7, *)
113121
static func repeating(
114122
_ range: Range<Int>,
115123
_ behavior: QuantificationBehavior,
@@ -137,6 +145,7 @@ extension DSLTree.Node {
137145
}
138146
}
139147

148+
@available(SwiftStdlib 5.7, *)
140149
extension QuantificationBehavior {
141150
/// Match as much of the input string as possible, backtracking when
142151
/// necessary.
@@ -304,6 +313,7 @@ public struct Reference<Capture>: RegexComponent {
304313
}
305314
}
306315

316+
@available(SwiftStdlib 5.7, *)
307317
extension Regex.Match {
308318
public subscript<Capture>(_ reference: Reference<Capture>) -> Capture {
309319
self[reference.id]

Sources/RegexBuilder/Match.swift

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import _StringProcessing
1313

14+
@available(SwiftStdlib 5.7, *)
1415
extension String {
1516
@available(SwiftStdlib 5.7, *)
1617
public func wholeMatch<R: RegexComponent>(

0 commit comments

Comments
 (0)