Skip to content

Commit 0aedad0

Browse files
committed
Add availability annotations to run with DarwinCompatibilityTests
1 parent 3953f66 commit 0aedad0

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

CoreFoundation/String.subproj/CFRegularExpression.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ _CFRegularExpressionRef _Nullable _CFRegularExpressionCreate(CFAllocatorRef allo
5757
void _CFRegularExpressionDestroy(_CFRegularExpressionRef regex);
5858

5959
CFIndex _CFRegularExpressionGetNumberOfCaptureGroups(_CFRegularExpressionRef regex);
60-
CFIndex _CFRegularExpressionGetCaptureGroupNumberWithName(_CFRegularExpressionRef regex, CFStringRef groupName);
60+
CFIndex _CFRegularExpressionGetCaptureGroupNumberWithName(_CFRegularExpressionRef regex, CFStringRef groupName) API_AVAILABLE(macosx(10.13), ios(11.0), watchos(4.0), tvos(11.0));
6161
void _CFRegularExpressionEnumerateMatchesInString(_CFRegularExpressionRef regexObj, CFStringRef string, _CFRegularExpressionMatchingOptions options, CFRange range, void *_Nullable context, _CFRegularExpressionMatch match);
6262

6363
CFStringRef _CFRegularExpressionGetPattern(_CFRegularExpressionRef regex);

Foundation/NSRegularExpression.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ open class NSRegularExpression: NSObject, NSCopying, NSCoding {
107107
return _CFRegularExpressionGetNumberOfCaptureGroups(_internal)
108108
}
109109

110+
@available(macOS 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
110111
internal func _captureGroupNumber(withName name: String) -> Int {
111112
return _CFRegularExpressionGetCaptureGroupNumberWithName(_internal, name._cfObject)
112113
}

Foundation/NSTextCheckingResult.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ open class NSTextCheckingResult: NSObject, NSCopying, NSCoding {
5454
open var range: NSRange { return range(at: 0) }
5555
/* A result must have at least one range, but may optionally have more (for example, to represent regular expression capture groups). The range at index 0 always matches the range property. Additional ranges, if any, will have indexes from 1 to numberOfRanges-1. */
5656
open func range(at idx: Int) -> NSRange { NSRequiresConcreteImplementation() }
57+
@available(macOS 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
5758
open func range(withName: String) -> NSRange { NSRequiresConcreteImplementation() }
5859
open var regularExpression: NSRegularExpression? { return nil }
5960
open var numberOfRanges: Int { return 1 }
@@ -83,6 +84,7 @@ internal class _NSRegularExpressionNSTextCheckingResultResult : NSTextCheckingRe
8384
override var resultType: CheckingType { return .RegularExpression }
8485
override func range(at idx: Int) -> NSRange { return _ranges[idx] }
8586

87+
@available(macOS 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
8688
override func range(withName name: String) -> NSRange {
8789
let idx = _regularExpression._captureGroupNumber(withName: name)
8890
if idx != kCFNotFound, idx < numberOfRanges {

TestFoundation/TestNSTextCheckingResult.swift

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,25 @@ class TestNSTextCheckingResult: XCTestCase {
4040
XCTAssertEqual(result.range(at: 0).location, 6)
4141
XCTAssertEqual(result.range(at: 1).location, NSNotFound)
4242
XCTAssertEqual(result.range(at: 2).location, 6)
43-
XCTAssertEqual(result.range(withName: "aname").location, 6)
43+
if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) {
44+
XCTAssertEqual(result.range(withName: "aname").location, 6)
45+
}
4446
//Negative offset
4547
result = match.adjustingRanges(offset: -2)
4648
XCTAssertEqual(result.range(at: 0).location, 3)
4749
XCTAssertEqual(result.range(at: 1).location, NSNotFound)
4850
XCTAssertEqual(result.range(at: 2).location, 3)
49-
XCTAssertEqual(result.range(withName: "aname").location, 3)
51+
if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) {
52+
XCTAssertEqual(result.range(withName: "aname").location, 3)
53+
}
5054
//ZeroOffset
5155
result = match.adjustingRanges(offset: 0)
5256
XCTAssertEqual(result.range(at: 0).location, 5)
5357
XCTAssertEqual(result.range(at: 1).location, NSNotFound)
5458
XCTAssertEqual(result.range(at: 2).location, 5)
55-
XCTAssertEqual(result.range(withName: "aname").location, 5)
59+
if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) {
60+
XCTAssertEqual(result.range(withName: "aname").location, 5)
61+
}
5662
} catch {
5763
XCTFail("Unable to build regular expression for pattern \(patternString)")
5864
}
@@ -71,18 +77,27 @@ class TestNSTextCheckingResult: XCTestCase {
7177
XCTAssertEqual(matches[0].range, NSRange(location: 0, length: 6))
7278
XCTAssertEqual(matches[0].range(at: 0), NSRange(location: 0, length: 6))
7379
XCTAssertEqual(matches[0].range(at: 1), NSRange(location: 0, length: 5))
74-
XCTAssertEqual(matches[0].range(withName: "name"), NSRange(location: 0, length: 5))
80+
if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) {
81+
XCTAssertEqual(matches[0].range(withName: "name"), NSRange(location: 0, length: 5))
82+
}
7583
XCTAssertEqual(matches[1].numberOfRanges, 2)
7684
XCTAssertEqual(matches[1].range, NSRange(location: 7, length: 6))
7785
XCTAssertEqual(matches[1].range(at: 0), NSRange(location: 7, length: 6))
7886
XCTAssertEqual(matches[1].range(at: 1), NSRange(location: 7, length: 5))
79-
XCTAssertEqual(matches[1].range(withName: "name"), NSRange(location: 7, length: 5))
87+
if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) {
88+
XCTAssertEqual(matches[1].range(withName: "name"), NSRange(location: 7, length: 5))
89+
}
8090
} catch {
8191
XCTFail("Unable to build regular expression for pattern \(patternString)")
8292
}
8393
}
8494

95+
8596
func test_rangeWithName() {
97+
guard #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) else {
98+
return
99+
}
100+
86101
let patternString = "(?<name1>hel)lo, (?<name2>worl)d"
87102

88103
do {

0 commit comments

Comments
 (0)