13
13
private func _utfRangeToNSRange( _ inRange : Range < UnicodeScalar > ) -> NSRange {
14
14
return NSMakeRange ( Int ( inRange. lowerBound. value) , Int ( inRange. upperBound. value - inRange. lowerBound. value) )
15
15
}
16
+
17
+ private func _utfRangeToNSRange( _ inRange : ClosedRange < UnicodeScalar > ) -> NSRange {
18
+ return NSMakeRange ( Int ( inRange. lowerBound. value) , Int ( inRange. upperBound. value - inRange. lowerBound. value + 1 ) )
19
+ }
16
20
17
21
internal final class _SwiftNSCharacterSet : NSCharacterSet , _SwiftNativeFoundationType {
18
22
internal typealias ImmutableType = NSCharacterSet
@@ -129,8 +133,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
129
133
///
130
134
/// It is the caller's responsibility to ensure that the values represent valid `UnicodeScalar` values, if that is what is desired.
131
135
public init ( charactersIn range: ClosedRange < UnicodeScalar > ) {
132
- let halfOpenRange = range. lowerBound..< UnicodeScalar ( range. upperBound. value + 1 ) !
133
- _wrapped = _SwiftNSCharacterSet ( immutableObject: NSCharacterSet ( range: _utfRangeToNSRange ( halfOpenRange) ) )
136
+ _wrapped = _SwiftNSCharacterSet ( immutableObject: NSCharacterSet ( range: _utfRangeToNSRange ( range) ) )
134
137
}
135
138
136
139
/// Initialize with the characters in the given string.
@@ -320,8 +323,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
320
323
///
321
324
/// It is the caller's responsibility to ensure that the values represent valid `UnicodeScalar` values, if that is what is desired.
322
325
public mutating func insert( charactersIn range: ClosedRange < UnicodeScalar > ) {
323
- let halfOpenRange = range. lowerBound..< UnicodeScalar ( range. upperBound. value + 1 ) !
324
- let nsRange = _utfRangeToNSRange ( halfOpenRange)
326
+ let nsRange = _utfRangeToNSRange ( range)
325
327
_applyUnmanagedMutation {
326
328
$0. addCharacters ( in: nsRange)
327
329
}
@@ -337,8 +339,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
337
339
338
340
/// Remove a closed range of integer values from the `CharacterSet`.
339
341
public mutating func remove( charactersIn range: ClosedRange < UnicodeScalar > ) {
340
- let halfOpenRange = range. lowerBound..< UnicodeScalar ( range. upperBound. value + 1 ) !
341
- let nsRange = _utfRangeToNSRange ( halfOpenRange)
342
+ let nsRange = _utfRangeToNSRange ( range)
342
343
_applyUnmanagedMutation {
343
344
$0. removeCharacters ( in: nsRange)
344
345
}
0 commit comments