Skip to content

Commit df1901c

Browse files
Robert PietaRobert Pieta
authored andcommitted
Improved performance of NSOrderedSet and NSSet with early exit
1 parent eff149c commit df1901c

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

Foundation/NSOrderedSet.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ extension NSOrderedSet {
210210
}
211211

212212
open func isSubset(of other: NSOrderedSet) -> Bool {
213+
if count > other.count {
214+
return false
215+
}
216+
213217
for item in self {
214218
if !other.contains(item) {
215219
return false
@@ -219,6 +223,10 @@ extension NSOrderedSet {
219223
}
220224

221225
open func isSubset(of set: Set<AnyHashable>) -> Bool {
226+
if count > set.count {
227+
return false
228+
}
229+
222230
for item in self {
223231
if !set.contains(item as! AnyHashable) {
224232
return false

Foundation/NSSet.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,10 @@ extension NSSet {
208208
}
209209

210210
open func isSubset(of otherSet: Set<AnyHashable>) -> Bool {
211+
if count > otherSet.count {
212+
return false
213+
}
214+
211215
// `true` if we don't contain any object that `otherSet` doesn't contain.
212216
for item in self {
213217
if !otherSet.contains(item as! AnyHashable) {

0 commit comments

Comments
 (0)