1313private func _utfRangeToNSRange( _ inRange : Range < UnicodeScalar > ) -> NSRange {
1414 return NSMakeRange ( Int ( inRange. lowerBound. value) , Int ( inRange. upperBound. value - inRange. lowerBound. value) )
1515}
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+ }
1620
1721internal final class _SwiftNSCharacterSet : NSCharacterSet , _SwiftNativeFoundationType {
1822 internal typealias ImmutableType = NSCharacterSet
@@ -129,8 +133,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
129133 ///
130134 /// It is the caller's responsibility to ensure that the values represent valid `UnicodeScalar` values, if that is what is desired.
131135 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) ) )
134137 }
135138
136139 /// Initialize with the characters in the given string.
@@ -320,8 +323,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
320323 ///
321324 /// It is the caller's responsibility to ensure that the values represent valid `UnicodeScalar` values, if that is what is desired.
322325 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)
325327 _applyUnmanagedMutation {
326328 $0. addCharacters ( in: nsRange)
327329 }
@@ -337,8 +339,7 @@ public struct CharacterSet : ReferenceConvertible, Equatable, Hashable, SetAlgeb
337339
338340 /// Remove a closed range of integer values from the `CharacterSet`.
339341 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)
342343 _applyUnmanagedMutation {
343344 $0. removeCharacters ( in: nsRange)
344345 }
0 commit comments