Skip to content

Commit da6cbb3

Browse files
authored
fix set diff and loop twice (#8699)
1 parent 3437f64 commit da6cbb3

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

packages/core/utils/src/collection.js

+5
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ export function setDifference<T>(a: Set<T>, b: Set<T>): Set<T> {
4141
difference.add(e);
4242
}
4343
}
44+
for (let d of b) {
45+
if (!a.has(d)) {
46+
difference.add(d);
47+
}
48+
}
4449
return difference;
4550
}
4651

packages/core/utils/test/collection.test.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
// @flow
22

33
import assert from 'assert';
4-
import {objectSortedEntries, objectSortedEntriesDeep} from '../src/collection';
4+
import {
5+
objectSortedEntries,
6+
objectSortedEntriesDeep,
7+
setDifference,
8+
} from '../src/collection';
59

610
describe('objectSortedEntries', () => {
711
it('returns a sorted list of key/value tuples', () => {
@@ -38,3 +42,11 @@ describe('objectSortedEntriesDeep', () => {
3842
);
3943
});
4044
});
45+
describe('setDifference', () => {
46+
it('returns a setDifference of two sets of T type', () => {
47+
assert.deepEqual(
48+
setDifference(new Set([1, 2, 3]), new Set([3, 4, 5])),
49+
new Set([1, 2, 4, 5]),
50+
);
51+
});
52+
});

0 commit comments

Comments
 (0)