Skip to content

Commit dbaf956

Browse files
committed
avoid abstract in belt_Set
1 parent 3675cb2 commit dbaf956

File tree

9 files changed

+84
-108
lines changed

9 files changed

+84
-108
lines changed

jscomp/main/builtin_cmj_datasets.ml

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

jscomp/others/belt_Set.ml

Lines changed: 51 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -36,133 +36,130 @@ type ('value, 'id ) cmp = ('value, 'id) Belt_Id.cmp
3636
type ('value, 'id) t = {
3737
cmp: ('value, 'id) cmp;
3838
data: ('value, 'id) Dict.t;
39-
} [@@bs.deriving abstract]
39+
}
4040

4141

4242

4343

44-
let fromArray (type value) (type identity) data ~(id : (value,identity) id) =
44+
let fromArray (type value identity) data ~(id : (value,identity) id) =
4545
let module M = (val id ) in
4646
let cmp = M.cmp in
47-
t ~cmp ~data:(Dict.fromArray ~cmp data)
47+
{cmp; data = (Dict.fromArray ~cmp data)}
4848

4949
let remove m e =
50-
let cmp, data = cmpGet m, dataGet m in
50+
let {cmp; data} = m in
5151
let newData = Dict.remove ~cmp data e in
5252
if newData == data then m
53-
else t ~cmp ~data:newData
53+
else {cmp; data = newData}
5454

5555
let add m e =
56-
let cmp, data = cmpGet m, dataGet m in
56+
let {cmp; data} = m in
5757
let newData = Dict.add ~cmp data e in
5858
if newData == data then m
5959
else
60-
t ~cmp ~data:newData
60+
{cmp; data = newData}
6161

62-
let mergeMany m e =
63-
let cmp = cmpGet m in
64-
t ~cmp ~data:(Dict.mergeMany ~cmp (dataGet m) e )
62+
let mergeMany ({cmp} as m) e =
63+
{cmp; data = Dict.mergeMany ~cmp m.data e}
6564

66-
let removeMany m e =
67-
let cmp = cmpGet m in
68-
t ~cmp ~data:(Dict.removeMany ~cmp (dataGet m) e)
65+
let removeMany ({cmp;} as m) e =
66+
{cmp; data = Dict.removeMany ~cmp m.data e}
6967

70-
let union m n =
71-
let cmp = cmpGet m in
72-
t ~data:(Dict.union ~cmp (dataGet m) (dataGet n)) ~cmp
68+
let union ({cmp;} as m) n =
69+
{data = (Dict.union ~cmp m.data n.data) ; cmp}
7370

7471
let intersect m n =
75-
let cmp = cmpGet m in
76-
t ~data:(Dict.intersect ~cmp (dataGet m) (dataGet n)) ~cmp
72+
let cmp = m.cmp in
73+
{data = (Dict.intersect ~cmp m.data n.data) ;cmp}
7774

7875
let diff m n =
79-
let cmp = cmpGet m in
80-
t ~cmp ~data:(Dict.diff ~cmp (dataGet m) (dataGet n))
76+
let cmp = m.cmp in
77+
{cmp; data = (Dict.diff ~cmp m.data n.data)}
8178

8279
let subset m n =
83-
let cmp = cmpGet m in
84-
Dict.subset ~cmp (dataGet m) (dataGet n)
80+
let cmp = m.cmp in
81+
Dict.subset ~cmp m.data n.data
8582

8683
let split m e =
87-
let cmp = cmpGet m in
88-
let (l, r), b = Dict.split ~cmp (dataGet m) e in
89-
(t ~cmp ~data:l, t ~cmp ~data:r), b
84+
let cmp = m.cmp in
85+
let (l, r), b = Dict.split ~cmp m.data e in
86+
({cmp; data = l}, {cmp; data=r}), b
9087

9188
let make (type value) (type identity) ~(id : (value, identity) id) =
9289
let module M = (val id) in
93-
t ~cmp:M.cmp ~data:Dict.empty
90+
{cmp = M.cmp; data = Dict.empty}
9491

95-
let isEmpty m = Dict.isEmpty (dataGet m)
92+
let isEmpty m = Dict.isEmpty m.data
9693

9794
let cmp m n =
98-
let cmp = cmpGet m in
99-
Dict.cmp ~cmp (dataGet m) (dataGet n)
95+
let cmp = m.cmp in
96+
Dict.cmp ~cmp m.data n.data
10097

10198
let eq m n =
102-
Dict.eq ~cmp:(cmpGet m) (dataGet m) (dataGet n)
99+
Dict.eq ~cmp:(m.cmp) m.data n.data
103100

104-
let forEachU m f = Dict.forEachU (dataGet m) f
101+
let forEachU m f = Dict.forEachU m.data f
105102
let forEach m f = forEachU m (fun [@bs] a -> f a)
106103

107-
let reduceU m acc f = Dict.reduceU (dataGet m) acc f
104+
let reduceU m acc f = Dict.reduceU m.data acc f
108105
let reduce m acc f = reduceU m acc (fun [@bs] a b -> f a b)
109106

110-
let everyU m f = Dict.everyU (dataGet m) f
107+
let everyU m f = Dict.everyU m.data f
111108
let every m f = everyU m (fun [@bs] a -> f a)
112109

113-
let someU m f = Dict.someU (dataGet m) f
110+
let someU m f = Dict.someU m.data f
114111
let some m f = someU m (fun [@bs] a -> f a)
115112

116113
let keepU m f =
117-
t ~cmp:(cmpGet m) ~data:(Dict.keepU (dataGet m) f )
114+
{cmp=(m.cmp) ; data = (Dict.keepU m.data f )}
118115
let keep m f = keepU m (fun [@bs] a -> f a)
119116

120117
let partitionU m f =
121-
let l,r = Dict.partitionU (dataGet m) f in
122-
let cmp = cmpGet m in
123-
t ~data:l ~cmp, t ~data:r ~cmp
118+
let l,r = Dict.partitionU m.data f in
119+
let cmp = m.cmp in
120+
{data = l ; cmp}, { data = r; cmp}
124121
let partition m f = partitionU m (fun [@bs] a -> f a)
125122

126-
let size m = Dict.size (dataGet m)
127-
let toList m = Dict.toList (dataGet m)
128-
let toArray m = Dict.toArray (dataGet m)
123+
let size m = Dict.size m.data
124+
let toList m = Dict.toList m.data
125+
let toArray m = Dict.toArray m.data
129126

130-
let minimum m = Dict.minimum (dataGet m)
131-
let minUndefined m = Dict.minUndefined (dataGet m)
132-
let maximum m = Dict.maximum (dataGet m)
133-
let maxUndefined m = Dict.maxUndefined (dataGet m)
127+
let minimum m = Dict.minimum m.data
128+
let minUndefined m = Dict.minUndefined m.data
129+
let maximum m = Dict.maximum m.data
130+
let maxUndefined m = Dict.maxUndefined m.data
134131

135132

136133
let get m e =
137-
Dict.get ~cmp:(cmpGet m) (dataGet m) e
134+
Dict.get ~cmp:(m.cmp) m.data e
138135

139136
let getUndefined m e =
140-
Dict.getUndefined ~cmp:(cmpGet m) (dataGet m) e
137+
Dict.getUndefined ~cmp:(m.cmp) m.data e
141138

142139
let getExn m e =
143-
Dict.getExn ~cmp:(cmpGet m) (dataGet m) e
140+
Dict.getExn ~cmp:(m.cmp) m.data e
144141

145142
let has m e =
146-
Dict.has ~cmp:(cmpGet m) (dataGet m) e
143+
Dict.has ~cmp:(m.cmp) m.data e
147144

148145
let fromSortedArrayUnsafe (type value) (type identity) xs ~(id : (value,identity) id ) =
149146
let module M = (val id) in
150-
t ~cmp:M.cmp ~data:(Dict.fromSortedArrayUnsafe xs)
147+
{cmp = M.cmp; data = (Dict.fromSortedArrayUnsafe xs)}
151148

152-
let getData = dataGet
149+
let getData m = m.data
153150

154151
let getId (type value) (type identity) (m : (value,identity) t) : (value, identity) id =
155152
let module T = struct
156153
type nonrec identity = identity
157154
type nonrec t = value
158-
let cmp = cmpGet m
155+
let cmp = m.cmp
159156
end in
160157
(module T)
161158

162159
let packIdData (type value) (type identity) ~(id : (value, identity) id) ~data =
163160
let module M = (val id) in
164-
t ~cmp:M.cmp ~data
161+
{cmp = M.cmp; data}
165162

166-
let checkInvariantInternal d = Dict.checkInvariantInternal (dataGet d)
163+
let checkInvariantInternal d = Dict.checkInvariantInternal d.data
167164

168165

jscomp/test/bs_map_set_dict_test.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,13 @@ var m0 = {
3737
data: null
3838
};
3939

40+
var m00_cmp = Ic3.cmp;
41+
42+
var m00_data = null;
43+
4044
var m00 = {
41-
cmp: Ic3.cmp,
42-
data: null
45+
cmp: m00_cmp,
46+
data: m00_data
4347
};
4448

4549
var I2 = Belt_Id.comparable((function (x, y) {
@@ -79,16 +83,11 @@ var m11 = Belt_MapDict.set(null, 1, 1, Icmp.cmp);
7983

8084
console.log(m11);
8185

82-
var v = {
83-
cmp: Icmp2.cmp,
84-
data: null
85-
};
86-
8786
var m_dict$1 = Belt_Map.getId(m);
8887

8988
var cmp = m_dict$1.cmp;
9089

91-
var data$2 = v.data;
90+
var data$2 = null;
9291

9392
for(var i$1 = 0; i$1 <= 100000; ++i$1){
9493
data$2 = Belt_SetDict.add(data$2, i$1, cmp);

jscomp/test/bs_poly_set_test.js

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -186,33 +186,13 @@ b("File \"bs_poly_set_test.ml\", line 86, characters 4-11", undefined === Belt_S
186186

187187
eq("File \"bs_poly_set_test.ml\", line 88, characters 5-12", Belt_SetDict.size(u25.data), 60);
188188

189-
var m = {
190-
cmp: IntCmp.cmp,
191-
data: null
192-
};
193-
194-
b("File \"bs_poly_set_test.ml\", line 89, characters 4-11", Belt_SetDict.minimum(m.data) === undefined);
195-
196-
var m$1 = {
197-
cmp: IntCmp.cmp,
198-
data: null
199-
};
189+
b("File \"bs_poly_set_test.ml\", line 89, characters 4-11", Belt_SetDict.minimum(null) === undefined);
200190

201-
b("File \"bs_poly_set_test.ml\", line 90, characters 4-11", Belt_SetDict.maximum(m$1.data) === undefined);
191+
b("File \"bs_poly_set_test.ml\", line 90, characters 4-11", Belt_SetDict.maximum(null) === undefined);
202192

203-
var m$2 = {
204-
cmp: IntCmp.cmp,
205-
data: null
206-
};
207-
208-
b("File \"bs_poly_set_test.ml\", line 91, characters 4-11", Belt_SetDict.minUndefined(m$2.data) === undefined);
209-
210-
var m$3 = {
211-
cmp: IntCmp.cmp,
212-
data: null
213-
};
193+
b("File \"bs_poly_set_test.ml\", line 91, characters 4-11", Belt_SetDict.minUndefined(null) === undefined);
214194

215-
b("File \"bs_poly_set_test.ml\", line 92, characters 4-11", Belt_SetDict.maxUndefined(m$3.data) === undefined);
195+
b("File \"bs_poly_set_test.ml\", line 92, characters 4-11", Belt_SetDict.maxUndefined(null) === undefined);
216196

217197
function testIterToList(xs) {
218198
var v = {
@@ -395,11 +375,11 @@ Belt_List.forEach(/* :: */[
395375

396376
var a = Belt_Set.fromArray([], IntCmp);
397377

398-
var m$4 = Belt_Set.keep(a, (function (x) {
378+
var m = Belt_Set.keep(a, (function (x) {
399379
return x % 2 === 0;
400380
}));
401381

402-
b("File \"bs_poly_set_test.ml\", line 153, characters 4-11", Belt_SetDict.isEmpty(m$4.data));
382+
b("File \"bs_poly_set_test.ml\", line 153, characters 4-11", Belt_SetDict.isEmpty(m.data));
403383

404384
var match$5 = Belt_Set.split({
405385
cmp: IntCmp.cmp,

lib/4.06.1/unstable/js_compiler.ml

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

lib/4.06.1/unstable/js_refmt_compiler.ml

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

lib/4.06.1/whole_compiler.ml

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

lib/es6/belt_Set.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ function fromArray(data, id) {
1212
}
1313

1414
function remove(m, e) {
15-
var cmp = m.cmp;
1615
var data = m.data;
16+
var cmp = m.cmp;
1717
var newData = Belt_SetDict.remove(data, e, cmp);
1818
if (newData === data) {
1919
return m;
@@ -26,8 +26,8 @@ function remove(m, e) {
2626
}
2727

2828
function add(m, e) {
29-
var cmp = m.cmp;
3029
var data = m.data;
30+
var cmp = m.cmp;
3131
var newData = Belt_SetDict.add(data, e, cmp);
3232
if (newData === data) {
3333
return m;
@@ -236,8 +236,8 @@ function fromSortedArrayUnsafe(xs, id) {
236236
};
237237
}
238238

239-
function getData(prim) {
240-
return prim.data;
239+
function getData(m) {
240+
return m.data;
241241
}
242242

243243
function getId(m) {

lib/js/belt_Set.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ function fromArray(data, id) {
1212
}
1313

1414
function remove(m, e) {
15-
var cmp = m.cmp;
1615
var data = m.data;
16+
var cmp = m.cmp;
1717
var newData = Belt_SetDict.remove(data, e, cmp);
1818
if (newData === data) {
1919
return m;
@@ -26,8 +26,8 @@ function remove(m, e) {
2626
}
2727

2828
function add(m, e) {
29-
var cmp = m.cmp;
3029
var data = m.data;
30+
var cmp = m.cmp;
3131
var newData = Belt_SetDict.add(data, e, cmp);
3232
if (newData === data) {
3333
return m;
@@ -236,8 +236,8 @@ function fromSortedArrayUnsafe(xs, id) {
236236
};
237237
}
238238

239-
function getData(prim) {
240-
return prim.data;
239+
function getData(m) {
240+
return m.data;
241241
}
242242

243243
function getId(m) {

0 commit comments

Comments
 (0)