Skip to content

Commit 14e64d4

Browse files
committed
remove abstract in internalSetBuckets
1 parent ab3c768 commit 14e64d4

12 files changed

+101
-105
lines changed

jscomp/others/belt_HashSet.ml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,16 @@ let rec copyBucket ~hash ~h_buckets ~ndata_tail old_bucket =
4343
match C.toOpt old_bucket with
4444
| None -> ()
4545
| Some cell ->
46-
let nidx = (Belt_Id.getHashInternal hash) (N.keyGet cell) [@bs] land (A.length h_buckets - 1) in
46+
let nidx = (Belt_Id.getHashInternal hash) cell.N.key [@bs] land (A.length h_buckets - 1) in
4747
let v = C.return cell in
4848
begin match C.toOpt (A.getUnsafe ndata_tail nidx) with
4949
| None ->
5050
A.setUnsafe h_buckets nidx v
5151
| Some tail ->
52-
N.nextSet tail v (* cell put at the end *)
52+
tail.N.next <- v (* cell put at the end *)
5353
end;
5454
A.setUnsafe ndata_tail nidx v;
55-
copyBucket ~hash ~h_buckets ~ndata_tail (N.nextGet cell)
55+
copyBucket ~hash ~h_buckets ~ndata_tail cell.N.next
5656

5757

5858
let tryDoubleResize ~hash h =
@@ -69,18 +69,18 @@ let tryDoubleResize ~hash h =
6969
for i = 0 to nsize - 1 do
7070
match C.toOpt (A.getUnsafe ndata_tail i) with
7171
| None -> ()
72-
| Some tail -> N.nextSet tail C.emptyOpt
72+
| Some tail -> tail.N.next <- C.emptyOpt
7373
done
7474
end
7575

7676

7777

7878
let rec removeBucket ~eq h h_buckets i key prec cell =
79-
let cell_next = N.nextGet cell in
80-
if (Belt_Id.getEqInternal eq) (N.keyGet cell) key [@bs]
79+
let cell_next = cell.N.next in
80+
if (Belt_Id.getEqInternal eq) cell.N.key key [@bs]
8181
then
8282
begin
83-
N.nextSet prec cell_next;
83+
prec.N.next <- cell_next;
8484
h.C.size <- (h.C.size - 1);
8585
end
8686
else
@@ -98,8 +98,8 @@ let remove h key =
9898
match C.toOpt l with
9999
| None -> ()
100100
| Some cell ->
101-
let next_cell = N.nextGet cell in
102-
if (Belt_Id.getEqInternal eq) (N.keyGet cell) key [@bs] then
101+
let next_cell = cell.N.next in
102+
if (Belt_Id.getEqInternal eq) cell.N.key key [@bs] then
103103
begin
104104
h.C.size <- (h.C.size - 1) ;
105105
A.setUnsafe h_buckets i next_cell
@@ -113,12 +113,12 @@ let remove h key =
113113

114114

115115
let rec addBucket h key cell ~eq =
116-
if not ((Belt_Id.getEqInternal eq) (N.keyGet cell) key [@bs]) then
117-
let n = N.nextGet cell in
116+
if not ((Belt_Id.getEqInternal eq) cell.N.key key [@bs]) then
117+
let n = cell.N.next in
118118
match C.toOpt n with
119119
| None ->
120120
h.C.size <- (h.C.size + 1);
121-
N.nextSet cell (C.return @@ N.bucket ~key ~next:C.emptyOpt)
121+
cell.N.next <- C.return { N.key; next = C.emptyOpt}
122122
| Some n -> addBucket ~eq h key n
123123

124124
let add0 h key ~hash ~eq =
@@ -130,7 +130,7 @@ let add0 h key ~hash ~eq =
130130
| None ->
131131
h.C.size <- (h.C.size+ 1);
132132
A.setUnsafe h_buckets i
133-
(C.return @@ N.bucket ~key ~next:C.emptyOpt)
133+
(C.return { N.key; next = C.emptyOpt})
134134
| Some cell ->
135135
addBucket ~eq h key cell);
136136
if h.C.size > buckets_len lsl 1 then tryDoubleResize ~hash h
@@ -140,8 +140,8 @@ let add h key =
140140

141141
let rec memInBucket ~eq key cell =
142142
(Belt_Id.getEqInternal eq)
143-
(N.keyGet cell) key [@bs] ||
144-
(match C.toOpt (N.nextGet cell) with
143+
cell.N.key key [@bs] ||
144+
(match C.toOpt cell.N.next with
145145
| None -> false
146146
| Some nextCell ->
147147
memInBucket ~eq key nextCell)

jscomp/others/belt_HashSetInt.ml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ let rec copyBucket ~h_buckets ~ndata_tail old_bucket =
1717
match C.toOpt old_bucket with
1818
| None -> ()
1919
| Some cell ->
20-
let nidx = hash (N.keyGet cell) land (A.length h_buckets - 1) in
20+
let nidx = hash cell.N.key land (A.length h_buckets - 1) in
2121
let v = C.return cell in
2222
begin match C.toOpt (A.getUnsafe ndata_tail nidx) with
2323
| None ->
2424
A.setUnsafe h_buckets nidx v
2525
| Some tail ->
26-
N.nextSet tail v (* cell put at the end *)
26+
tail.N.next <- v (* cell put at the end *)
2727
end;
2828
A.setUnsafe ndata_tail nidx v;
29-
copyBucket ~h_buckets ~ndata_tail (N.nextGet cell)
29+
copyBucket ~h_buckets ~ndata_tail cell.N.next
3030

3131

3232
let tryDoubleResize h =
@@ -43,18 +43,18 @@ let tryDoubleResize h =
4343
for i = 0 to nsize - 1 do
4444
match C.toOpt (A.getUnsafe ndata_tail i) with
4545
| None -> ()
46-
| Some tail -> N.nextSet tail C.emptyOpt
46+
| Some tail -> tail.N.next <- C.emptyOpt
4747
done
4848
end
4949

5050

5151

5252
let rec removeBucket h h_buckets i (key : key) prec cell =
53-
let cell_next = N.nextGet cell in
54-
if (N.keyGet cell) = key
53+
let cell_next = cell.N.next in
54+
if cell.N.key = key
5555
then
5656
begin
57-
N.nextSet prec cell_next;
57+
prec.N.next <- cell_next;
5858
h.C.size <- (h.C.size - 1);
5959
end
6060
else
@@ -71,8 +71,8 @@ let remove h (key : key)=
7171
match C.toOpt l with
7272
| None -> ()
7373
| Some cell ->
74-
let next_cell = N.nextGet cell in
75-
if (N.keyGet cell) = key then
74+
let next_cell = cell.N.next in
75+
if cell.N.key = key then
7676
begin
7777
h.C.size <- (h.C.size- 1) ;
7878
A.setUnsafe h_buckets i next_cell
@@ -85,12 +85,12 @@ let remove h (key : key)=
8585

8686

8787
let rec addBucket h (key : key) cell =
88-
if N.keyGet cell <> key then
89-
let n = N.nextGet cell in
88+
if cell.N.key <> key then
89+
let n = cell.N.next in
9090
match C.toOpt n with
9191
| None ->
9292
h.C.size <- (h.C.size+ 1);
93-
N.nextSet cell (C.return @@ N.bucket ~key ~next:C.emptyOpt);
93+
cell.N.next <- (C.return {N.key; next = C.emptyOpt});
9494
| Some n -> addBucket h key n
9595

9696
let add h (key : key) =
@@ -101,15 +101,15 @@ let add h (key : key) =
101101
(match C.toOpt l with
102102
| None ->
103103
A.setUnsafe h_buckets i
104-
(C.return @@ N.bucket ~key ~next:C.emptyOpt);
104+
(C.return {N.key ; next = C.emptyOpt});
105105
h.C.size <- (h.C.size + 1);
106106
| Some cell ->
107107
addBucket h key cell);
108108
if h.C.size> buckets_len lsl 1 then tryDoubleResize h
109109

110110
let rec memInBucket (key : key) cell =
111-
N.keyGet cell = key ||
112-
(match C.toOpt (N.nextGet cell) with
111+
cell.N.key = key ||
112+
(match C.toOpt cell.N.next with
113113
| None -> false
114114
| Some nextCell ->
115115
memInBucket key nextCell)

jscomp/others/belt_HashSetString.ml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ let rec copyBucket ~h_buckets ~ndata_tail old_bucket =
1818
match C.toOpt old_bucket with
1919
| None -> ()
2020
| Some cell ->
21-
let nidx = hash (N.keyGet cell) land (A.length h_buckets - 1) in
21+
let nidx = hash cell.N.key land (A.length h_buckets - 1) in
2222
let v = C.return cell in
2323
begin match C.toOpt (A.getUnsafe ndata_tail nidx) with
2424
| None ->
2525
A.setUnsafe h_buckets nidx v
2626
| Some tail ->
27-
N.nextSet tail v (* cell put at the end *)
27+
tail.N.next <- v (* cell put at the end *)
2828
end;
2929
A.setUnsafe ndata_tail nidx v;
30-
copyBucket ~h_buckets ~ndata_tail (N.nextGet cell)
30+
copyBucket ~h_buckets ~ndata_tail cell.N.next
3131

3232

3333
let tryDoubleResize h =
@@ -44,18 +44,18 @@ let tryDoubleResize h =
4444
for i = 0 to nsize - 1 do
4545
match C.toOpt (A.getUnsafe ndata_tail i) with
4646
| None -> ()
47-
| Some tail -> N.nextSet tail C.emptyOpt
47+
| Some tail -> tail.N.next <- C.emptyOpt
4848
done
4949
end
5050

5151

5252

5353
let rec removeBucket h h_buckets i (key : key) prec cell =
54-
let cell_next = N.nextGet cell in
55-
if (N.keyGet cell) = key
54+
let cell_next = cell.N.next in
55+
if cell.N.key = key
5656
then
5757
begin
58-
N.nextSet prec cell_next;
58+
prec.N.next <- cell_next;
5959
h.C.size <- (h.C.size - 1);
6060
end
6161
else
@@ -72,8 +72,8 @@ let remove h (key : key)=
7272
match C.toOpt l with
7373
| None -> ()
7474
| Some cell ->
75-
let next_cell = N.nextGet cell in
76-
if (N.keyGet cell) = key then
75+
let next_cell = cell.N.next in
76+
if cell.N.key = key then
7777
begin
7878
h.C.size <- (h.C.size- 1) ;
7979
A.setUnsafe h_buckets i next_cell
@@ -86,12 +86,12 @@ let remove h (key : key)=
8686

8787

8888
let rec addBucket h (key : key) cell =
89-
if N.keyGet cell <> key then
90-
let n = N.nextGet cell in
89+
if cell.N.key <> key then
90+
let n = cell.N.next in
9191
match C.toOpt n with
9292
| None ->
9393
h.C.size <- (h.C.size+ 1);
94-
N.nextSet cell (C.return @@ N.bucket ~key ~next:C.emptyOpt);
94+
cell.N.next <- (C.return {N.key; next = C.emptyOpt});
9595
| Some n -> addBucket h key n
9696

9797
let add h (key : key) =
@@ -102,15 +102,15 @@ let add h (key : key) =
102102
(match C.toOpt l with
103103
| None ->
104104
A.setUnsafe h_buckets i
105-
(C.return @@ N.bucket ~key ~next:C.emptyOpt);
105+
(C.return {N.key ; next = C.emptyOpt});
106106
h.C.size <- (h.C.size + 1);
107107
| Some cell ->
108108
addBucket h key cell);
109109
if h.C.size> buckets_len lsl 1 then tryDoubleResize h
110110

111111
let rec memInBucket (key : key) cell =
112-
N.keyGet cell = key ||
113-
(match C.toOpt (N.nextGet cell) with
112+
cell.N.key = key ||
113+
(match C.toOpt cell.N.next with
114114
| None -> false
115115
| Some nextCell ->
116116
memInBucket key nextCell)

jscomp/others/belt_internalSetBuckets.ml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type 'a bucket = {
3636
mutable next : 'a bucket C.opt
3737
}
3838
and ('hash, 'eq, 'a) t = ('hash, 'eq, 'a bucket) C.container
39-
[@@bs.deriving abstract]
39+
4040

4141
module A = Belt_Array
4242

@@ -58,23 +58,23 @@ and copyBucket c =
5858
match C.toOpt c with
5959
| None -> c
6060
| Some c ->
61-
let head = (bucket ~key:(keyGet c)
62-
~next:(C.emptyOpt)) in
63-
copyAuxCont (nextGet c) head;
61+
let head = { key = c.key ;
62+
next = C.emptyOpt } in
63+
copyAuxCont c.next head;
6464
C.return head
6565
and copyAuxCont c prec =
6666
match C.toOpt c with
6767
| None -> ()
6868
| Some nc ->
69-
let ncopy = bucket ~key:(keyGet nc) ~next:C.emptyOpt in
70-
nextSet prec (C.return ncopy) ;
71-
copyAuxCont (nextGet nc) ncopy
69+
let ncopy = { key = nc.key; next = C.emptyOpt} in
70+
prec.next <- (C.return ncopy) ;
71+
copyAuxCont nc.next ncopy
7272

7373

7474
let rec bucketLength accu buckets =
7575
match C.toOpt buckets with
7676
| None -> accu
77-
| Some cell -> bucketLength (accu + 1) (nextGet cell)
77+
| Some cell -> bucketLength (accu + 1) cell.next
7878

7979

8080

@@ -83,7 +83,7 @@ let rec doBucketIter ~f buckets =
8383
| None ->
8484
()
8585
| Some cell ->
86-
f (keyGet cell) [@bs]; doBucketIter ~f (nextGet cell)
86+
f cell.key [@bs]; doBucketIter ~f cell.next
8787

8888
let forEachU h f =
8989
let d = h.C.buckets in
@@ -94,8 +94,8 @@ let forEachU h f =
9494
let forEach h f = forEachU h (fun[@bs] a -> f a )
9595

9696
let rec fillArray i arr cell =
97-
A.setUnsafe arr i (keyGet cell);
98-
match C.toOpt (nextGet cell) with
97+
A.setUnsafe arr i cell.key;
98+
match C.toOpt cell.next with
9999
| None -> i + 1
100100
| Some v -> fillArray (i + 1) arr v
101101

@@ -119,7 +119,7 @@ let rec doBucketFold ~f b accu =
119119
| None ->
120120
accu
121121
| Some cell ->
122-
doBucketFold ~f (nextGet cell) (f accu (keyGet cell) [@bs])
122+
doBucketFold ~f cell.next (f accu cell.key [@bs])
123123

124124
let reduceU h init f =
125125
let d = h.C.buckets in

jscomp/others/belt_internalSetBuckets.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type 'a bucket = {
2929
mutable next : 'a bucket C.opt
3030
}
3131
and ('hash, 'eq, 'a) t = ('hash, 'eq, 'a bucket) C.container
32-
[@@bs.deriving abstract]
32+
3333

3434
val copy: ('hash, 'eq, 'a) t -> ('hash, 'eq, 'a) t
3535

0 commit comments

Comments
 (0)