Skip to content

Commit 503d9f0

Browse files
committed
Support Set and WeakSet.
1 parent 9959c68 commit 503d9f0

File tree

9 files changed

+42
-0
lines changed

9 files changed

+42
-0
lines changed

jscomp/gentype/GenTypeCommon.ml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,9 +220,11 @@ let dateT = ident "Date"
220220
let mapT (x,y) = ident ~typeArgs:[x;y] "Map"
221221
let numberT = ident "number"
222222
let regexpT = ident "RegExp"
223+
let setT (x) = ident ~typeArgs:[x] "Set"
223224
let stringT = ident "string"
224225
let unitT = ident "void"
225226
let weakmapT (x,y) = ident ~typeArgs:[x;y] "WeakMap"
227+
let weaksetT (x) = ident ~typeArgs:[x] "WeakSet"
226228
let int64T = Tuple [numberT; numberT]
227229

228230
module NodeFilename = struct

jscomp/gentype/TranslateTypeExprFromTypes.ml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,16 @@ let translateConstr ~config ~paramsTranslation ~(path : Path.t) ~typeEnv =
9696
paramTranslation1.dependencies @ paramTranslation2.dependencies;
9797
type_ = weakmapT (paramTranslation1.type_, paramTranslation2.type_);
9898
}
99+
| ["Set"; "t"], [paramTranslation] ->
100+
{
101+
dependencies = paramTranslation.dependencies;
102+
type_ = setT paramTranslation.type_;
103+
}
104+
| ["WeakSet"; "t"], [paramTranslation] ->
105+
{
106+
dependencies = paramTranslation.dependencies;
107+
type_ = weaksetT paramTranslation.type_;
108+
}
99109
| (["Js"; "Re"; "t"] | ["RegExp"; "t"]), [] ->
100110
{dependencies = []; type_ = regexpT}
101111
| (["FB"; "unit"] | ["unit"]), [] -> {dependencies = []; type_ = unitT}

jscomp/gentype_tests/typescript-react-example/src/Core.bs.js

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jscomp/gentype_tests/typescript-react-example/src/Core.gen.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ export const regexp1: (x:RegExp) => RegExp = CoreBS.regexp1;
4747
export const map1: (x:Map<string,number>) => Map<string,number> = CoreBS.map1;
4848

4949
export const weakmap1: (x:WeakMap<number[],number>) => WeakMap<number[],number> = CoreBS.weakmap1;
50+
51+
export const set1: (x:Set<string>) => Set<string> = CoreBS.set1;
52+
53+
export const weakset1: (x:WeakSet<number[]>) => WeakSet<number[]> = CoreBS.weakset1;

jscomp/gentype_tests/typescript-react-example/src/Core.res

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,16 @@ let regexp0 = (x: Js.Re.t) => x
4747
let regexp1 = (x: RegExp.t) => x
4848

4949
module Map = Map_
50+
module Set = Set_
5051

5152
@genType
5253
let map1 = (x: Map.t<string, int>) => x
5354

5455
@genType
5556
let weakmap1 = (x: WeakMap.t<array<int>, int>) => x
57+
58+
@genType
59+
let set1 = (x: Set.t<string>) => x
60+
61+
@genType
62+
let weakset1 = (x: WeakSet.t<array<int>>) => x

jscomp/gentype_tests/typescript-react-example/src/Set_.bs.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type t<'a>

jscomp/gentype_tests/typescript-react-example/src/WeakSet.bs.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type t<'a>

0 commit comments

Comments
 (0)