Skip to content

Commit ab679b1

Browse files
committed
Make curry.res uncurry-ready.
Compile it in uncurried mode already, and make sure the output is identical.
1 parent 7e6a2ca commit ab679b1

File tree

1 file changed

+52
-28
lines changed

1 file changed

+52
-28
lines changed

jscomp/runtime/curry.res

Lines changed: 52 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* along with this program; if not, write to the Free Software
2323
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
2424

25+
@@uncurried
26+
2527
/* Generated by scripts/curry_gen.ml */
2628
external function_length: 'a => int = "#function_length"
2729
external apply_args: ('a => 'b, array<_>) => 'b = "#apply"
@@ -89,12 +91,20 @@ external apply8: (
8991
let curry_1 = (o, a0, arity) =>
9092
switch arity {
9193
| 1 => apply1(Obj.magic(o), a0)
92-
| 2 => apply2(Obj.magic(o), a0)
93-
| 3 => apply3(Obj.magic(o), a0)
94-
| 4 => apply4(Obj.magic(o), a0)
95-
| 5 => apply5(Obj.magic(o), a0)
96-
| 6 => apply6(Obj.magic(o), a0)
97-
| 7 => apply7(Obj.magic(o), a0)
94+
| 2 => param => apply2(Obj.magic(o), a0, param)
95+
| 3 => Obj.magic((param, \"param$1") => apply3(Obj.magic(o), a0, param, \"param$1"))
96+
| 4 => Obj.magic((param, \"param$1", \"param$2") =>
97+
apply4(Obj.magic(o), a0, param, \"param$1", \"param$2")
98+
)
99+
| 5 => Obj.magic((param, \"param$1", \"param$2", \"param$3") =>
100+
apply5(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3")
101+
)
102+
| 6 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4") =>
103+
apply6(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3", \"param$4")
104+
)
105+
| 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4", \"param$5") =>
106+
apply7(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3", \"param$4", \"param$5")
107+
)
98108
| _ => Obj.magic(app(o, [a0]))
99109
}
100110
)
@@ -124,11 +134,17 @@ let __1 = o => {
124134
switch arity {
125135
| 1 => app(apply1(Obj.magic(o), a0), [a1])
126136
| 2 => apply2(Obj.magic(o), a0, a1)
127-
| 3 => apply3(Obj.magic(o), a0, a1)
128-
| 4 => apply4(Obj.magic(o), a0, a1)
129-
| 5 => apply5(Obj.magic(o), a0, a1)
130-
| 6 => apply6(Obj.magic(o), a0, a1)
131-
| 7 => apply7(Obj.magic(o), a0, a1)
137+
| 3 => param => apply3(Obj.magic(o), a0, a1, param)
138+
| 4 => Obj.magic((param, \"param$1") => apply4(Obj.magic(o), a0, a1, param, \"param$1"))
139+
| 5 => Obj.magic((param, \"param$1", \"param$2") =>
140+
apply5(Obj.magic(o), a0, a1, param, \"param$1", \"param$2")
141+
)
142+
| 6 => Obj.magic((param, \"param$1", \"param$2", \"param$3") =>
143+
apply6(Obj.magic(o), a0, a1, param, \"param$1", \"param$2", \"param$3")
144+
)
145+
| 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4") =>
146+
apply7(Obj.magic(o), a0, a1, param, \"param$1", \"param$2", \"param$3", \"param$4")
147+
)
132148
| _ => Obj.magic(app(o, [a0, a1]))
133149
}
134150
)
@@ -139,7 +155,7 @@ let _2 = (o, a0, a1) => {
139155
if arity == 2 {
140156
apply2(o, a0, a1)
141157
} else {
142-
curry_2(o, a0, a1, arity)
158+
curry_2(Obj.magic(o), a0, a1, arity)
143159
}
144160
}
145161

@@ -159,10 +175,14 @@ let __2 = o => {
159175
| 1 => app(apply1(Obj.magic(o), a0), [a1, a2])
160176
| 2 => app(apply2(Obj.magic(o), a0, a1), [a2])
161177
| 3 => apply3(Obj.magic(o), a0, a1, a2)
162-
| 4 => apply4(Obj.magic(o), a0, a1, a2)
163-
| 5 => apply5(Obj.magic(o), a0, a1, a2)
164-
| 6 => apply6(Obj.magic(o), a0, a1, a2)
165-
| 7 => apply7(Obj.magic(o), a0, a1, a2)
178+
| 4 => param => apply4(Obj.magic(o), a0, a1, a2, param)
179+
| 5 => Obj.magic((param, \"param$1") => apply5(Obj.magic(o), a0, a1, a2, param, \"param$1"))
180+
| 6 => Obj.magic((param, \"param$1", \"param$2") =>
181+
apply6(Obj.magic(o), a0, a1, a2, param, \"param$1", \"param$2")
182+
)
183+
| 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3") =>
184+
apply7(Obj.magic(o), a0, a1, a2, param, \"param$1", \"param$2", \"param$3")
185+
)
166186
| _ => Obj.magic(app(o, [a0, a1, a2]))
167187
}
168188
)
@@ -173,7 +193,7 @@ let _3 = (o, a0, a1, a2) => {
173193
if arity == 3 {
174194
apply3(o, a0, a1, a2)
175195
} else {
176-
curry_3(o, a0, a1, a2, arity)
196+
curry_3(Obj.magic(o), a0, a1, a2, arity)
177197
}
178198
}
179199

@@ -194,9 +214,11 @@ let __3 = o => {
194214
| 2 => app(apply2(Obj.magic(o), a0, a1), [a2, a3])
195215
| 3 => app(apply3(Obj.magic(o), a0, a1, a2), [a3])
196216
| 4 => apply4(Obj.magic(o), a0, a1, a2, a3)
197-
| 5 => apply5(Obj.magic(o), a0, a1, a2, a3)
198-
| 6 => apply6(Obj.magic(o), a0, a1, a2, a3)
199-
| 7 => apply7(Obj.magic(o), a0, a1, a2, a3)
217+
| 5 => param => apply5(Obj.magic(o), a0, a1, a2, a3, param)
218+
| 6 => Obj.magic((param, \"param$1") => apply6(Obj.magic(o), a0, a1, a2, a3, param, \"param$1"))
219+
| 7 => Obj.magic((param, \"param$1", \"param$2") =>
220+
apply7(Obj.magic(o), a0, a1, a2, a3, param, \"param$1", \"param$2")
221+
)
200222
| _ => Obj.magic(app(o, [a0, a1, a2, a3]))
201223
}
202224
)
@@ -207,7 +229,7 @@ let _4 = (o, a0, a1, a2, a3) => {
207229
if arity == 4 {
208230
apply4(o, a0, a1, a2, a3)
209231
} else {
210-
curry_4(o, a0, a1, a2, a3, arity)
232+
curry_4(Obj.magic(o), a0, a1, a2, a3, arity)
211233
}
212234
}
213235

@@ -229,8 +251,10 @@ let __4 = o => {
229251
| 3 => app(apply3(Obj.magic(o), a0, a1, a2), [a3, a4])
230252
| 4 => app(apply4(Obj.magic(o), a0, a1, a2, a3), [a4])
231253
| 5 => apply5(Obj.magic(o), a0, a1, a2, a3, a4)
232-
| 6 => apply6(Obj.magic(o), a0, a1, a2, a3, a4)
233-
| 7 => apply7(Obj.magic(o), a0, a1, a2, a3, a4)
254+
| 6 => param => apply6(Obj.magic(o), a0, a1, a2, a3, a4, param)
255+
| 7 => Obj.magic((param, \"param$1") =>
256+
apply7(Obj.magic(o), a0, a1, a2, a3, a4, param, \"param$1")
257+
)
234258
| _ => Obj.magic(app(o, [a0, a1, a2, a3, a4]))
235259
}
236260
)
@@ -241,7 +265,7 @@ let _5 = (o, a0, a1, a2, a3, a4) => {
241265
if arity == 5 {
242266
apply5(o, a0, a1, a2, a3, a4)
243267
} else {
244-
curry_5(o, a0, a1, a2, a3, a4, arity)
268+
curry_5(Obj.magic(o), a0, a1, a2, a3, a4, arity)
245269
}
246270
}
247271

@@ -264,7 +288,7 @@ let __5 = o => {
264288
| 4 => app(apply4(Obj.magic(o), a0, a1, a2, a3), [a4, a5])
265289
| 5 => app(apply5(Obj.magic(o), a0, a1, a2, a3, a4), [a5])
266290
| 6 => apply6(Obj.magic(o), a0, a1, a2, a3, a4, a5)
267-
| 7 => apply7(Obj.magic(o), a0, a1, a2, a3, a4, a5)
291+
| 7 => param => apply7(Obj.magic(o), a0, a1, a2, a3, a4, a5, param)
268292
| _ => Obj.magic(app(o, [a0, a1, a2, a3, a4, a5]))
269293
}
270294
)
@@ -275,7 +299,7 @@ let _6 = (o, a0, a1, a2, a3, a4, a5) => {
275299
if arity == 6 {
276300
apply6(o, a0, a1, a2, a3, a4, a5)
277301
} else {
278-
curry_6(o, a0, a1, a2, a3, a4, a5, arity)
302+
curry_6(Obj.magic(o), a0, a1, a2, a3, a4, a5, arity)
279303
}
280304
}
281305

@@ -309,7 +333,7 @@ let _7 = (o, a0, a1, a2, a3, a4, a5, a6) => {
309333
if arity == 7 {
310334
apply7(o, a0, a1, a2, a3, a4, a5, a6)
311335
} else {
312-
curry_7(o, a0, a1, a2, a3, a4, a5, a6, arity)
336+
curry_7(Obj.magic(o), a0, a1, a2, a3, a4, a5, a6, arity)
313337
}
314338
}
315339

@@ -343,7 +367,7 @@ let _8 = (o, a0, a1, a2, a3, a4, a5, a6, a7) => {
343367
if arity == 8 {
344368
apply8(o, a0, a1, a2, a3, a4, a5, a6, a7)
345369
} else {
346-
curry_8(o, a0, a1, a2, a3, a4, a5, a6, a7, arity)
370+
curry_8(Obj.magic(o), a0, a1, a2, a3, a4, a5, a6, a7, arity)
347371
}
348372
}
349373

0 commit comments

Comments
 (0)