firefly-compiler 0.4.20 → 0.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiler/Builder.ff +23 -13
- package/compiler/JsEmitter.ff +120 -76
- package/compiler/LspHook.ff +4 -2
- package/compiler/Main.ff +13 -7
- package/compiler/Resolver.ff +15 -15
- package/compiler/Syntax.ff +1 -0
- package/core/Array.ff +6 -4
- package/core/Int.ff +12 -12
- package/core/List.ff +6 -4
- package/experimental/benchmarks/ListGrab.ff +23 -0
- package/experimental/benchmarks/ListGrab.java +55 -0
- package/experimental/benchmarks/Pyrotek45.ff +30 -0
- package/experimental/benchmarks/Pyrotek45.java +64 -0
- package/experimental/tests/TestJson.ff +26 -0
- package/lsp/Handler.ff +55 -59
- package/lsp/SignatureHelpHandler.ff +5 -4
- package/lsp/TestReferences.ff +15 -0
- package/lsp/TestReferencesCase.ff +8 -0
- package/output/js/ff/compiler/Builder.mjs +50 -44
- package/output/js/ff/compiler/Dependencies.mjs +0 -2
- package/output/js/ff/compiler/Deriver.mjs +16 -140
- package/output/js/ff/compiler/Dictionaries.mjs +8 -222
- package/output/js/ff/compiler/Environment.mjs +12 -154
- package/output/js/ff/compiler/Inference.mjs +127 -1013
- package/output/js/ff/compiler/JsEmitter.mjs +434 -2344
- package/output/js/ff/compiler/JsImporter.mjs +0 -12
- package/output/js/ff/compiler/LspHook.mjs +20 -446
- package/output/js/ff/compiler/Main.mjs +96 -550
- package/output/js/ff/compiler/Parser.mjs +36 -356
- package/output/js/ff/compiler/Patterns.mjs +20 -200
- package/output/js/ff/compiler/Resolver.mjs +26 -340
- package/output/js/ff/compiler/Substitution.mjs +2 -160
- package/output/js/ff/compiler/Syntax.mjs +449 -3293
- package/output/js/ff/compiler/Token.mjs +9 -1095
- package/output/js/ff/compiler/Tokenizer.mjs +4 -2
- package/output/js/ff/compiler/Unification.mjs +26 -360
- package/output/js/ff/compiler/Wildcards.mjs +0 -86
- package/output/js/ff/compiler/Workspace.mjs +8 -96
- package/output/js/ff/core/Array.mjs +15 -8
- package/output/js/ff/core/AssetSystem.mjs +4 -14
- package/output/js/ff/core/Bool.mjs +0 -12
- package/output/js/ff/core/Core.mjs +0 -30
- package/output/js/ff/core/Int.mjs +24 -24
- package/output/js/ff/core/IntMap.mjs +0 -8
- package/output/js/ff/core/Json.mjs +0 -40
- package/output/js/ff/core/List.mjs +23 -32
- package/output/js/ff/core/Lock.mjs +0 -10
- package/output/js/ff/core/Map.mjs +0 -24
- package/output/js/ff/core/Option.mjs +10 -286
- package/output/js/ff/core/Ordering.mjs +16 -158
- package/output/js/ff/core/Pair.mjs +2 -34
- package/output/js/ff/core/Path.mjs +2 -28
- package/output/js/ff/core/Random.mjs +4 -4
- package/output/js/ff/core/RbMap.mjs +56 -644
- package/output/js/ff/core/Show.mjs +0 -16
- package/output/js/ff/core/Stream.mjs +14 -144
- package/output/js/ff/core/StringMap.mjs +0 -8
- package/output/js/ff/core/Try.mjs +4 -108
- package/output/js/ff/core/Unit.mjs +2 -16
- package/package.json +1 -1
- package/postgresql/Pg.ff +23 -23
- package/vscode/package.json +1 -1
|
@@ -126,23 +126,14 @@ export function reverse_(compare_) {
|
|
|
126
126
|
return ((x_, y_) => {
|
|
127
127
|
{
|
|
128
128
|
const _1 = compare_(x_, y_);
|
|
129
|
-
{
|
|
130
129
|
if(_1.OrderingBefore) {
|
|
131
130
|
return ff_core_Ordering.OrderingAfter()
|
|
132
|
-
return
|
|
133
|
-
}
|
|
134
131
|
}
|
|
135
|
-
{
|
|
136
132
|
if(_1.OrderingSame) {
|
|
137
133
|
return ff_core_Ordering.OrderingSame()
|
|
138
|
-
return
|
|
139
134
|
}
|
|
140
|
-
}
|
|
141
|
-
{
|
|
142
135
|
if(_1.OrderingAfter) {
|
|
143
136
|
return ff_core_Ordering.OrderingBefore()
|
|
144
|
-
return
|
|
145
|
-
}
|
|
146
137
|
}
|
|
147
138
|
}
|
|
148
139
|
})
|
|
@@ -152,16 +143,12 @@ export function pair_(compareFirst_, compareSecond_) {
|
|
|
152
143
|
return ((x_, y_) => {
|
|
153
144
|
{
|
|
154
145
|
const _1 = compareFirst_(x_.first_, y_.first_);
|
|
155
|
-
{
|
|
156
146
|
if(_1.OrderingSame) {
|
|
157
147
|
return compareSecond_(x_.second_, y_.second_)
|
|
158
|
-
return
|
|
159
|
-
}
|
|
160
148
|
}
|
|
161
149
|
{
|
|
162
150
|
const ordering_ = _1;
|
|
163
151
|
return ordering_
|
|
164
|
-
return
|
|
165
152
|
}
|
|
166
153
|
}
|
|
167
154
|
})
|
|
@@ -192,24 +179,19 @@ return ((_1, _2) => {
|
|
|
192
179
|
{
|
|
193
180
|
const x_ = _1;
|
|
194
181
|
const y_ = _2;
|
|
195
|
-
|
|
196
|
-
if(_guard1) {
|
|
182
|
+
if(lessThan_(x_, y_)) {
|
|
197
183
|
return ff_core_Ordering.OrderingBefore()
|
|
198
|
-
return
|
|
199
184
|
}
|
|
200
185
|
}
|
|
201
186
|
{
|
|
202
187
|
const x_ = _1;
|
|
203
188
|
const y_ = _2;
|
|
204
|
-
|
|
205
|
-
if(_guard1) {
|
|
189
|
+
if(lessThan_(y_, x_)) {
|
|
206
190
|
return ff_core_Ordering.OrderingAfter()
|
|
207
|
-
return
|
|
208
191
|
}
|
|
209
192
|
}
|
|
210
193
|
{
|
|
211
194
|
return ff_core_Ordering.OrderingSame()
|
|
212
|
-
return
|
|
213
195
|
}
|
|
214
196
|
})
|
|
215
197
|
}
|
|
@@ -234,23 +216,14 @@ export async function reverse_$(compare_, $task) {
|
|
|
234
216
|
return (async (x_, y_, $task) => {
|
|
235
217
|
{
|
|
236
218
|
const _1 = (await compare_(x_, y_, $task));
|
|
237
|
-
{
|
|
238
219
|
if(_1.OrderingBefore) {
|
|
239
220
|
return ff_core_Ordering.OrderingAfter()
|
|
240
|
-
return
|
|
241
221
|
}
|
|
242
|
-
}
|
|
243
|
-
{
|
|
244
222
|
if(_1.OrderingSame) {
|
|
245
223
|
return ff_core_Ordering.OrderingSame()
|
|
246
|
-
return
|
|
247
224
|
}
|
|
248
|
-
}
|
|
249
|
-
{
|
|
250
225
|
if(_1.OrderingAfter) {
|
|
251
226
|
return ff_core_Ordering.OrderingBefore()
|
|
252
|
-
return
|
|
253
|
-
}
|
|
254
227
|
}
|
|
255
228
|
}
|
|
256
229
|
})
|
|
@@ -260,16 +233,12 @@ export async function pair_$(compareFirst_, compareSecond_, $task) {
|
|
|
260
233
|
return (async (x_, y_, $task) => {
|
|
261
234
|
{
|
|
262
235
|
const _1 = (await compareFirst_(x_.first_, y_.first_, $task));
|
|
263
|
-
{
|
|
264
236
|
if(_1.OrderingSame) {
|
|
265
237
|
return (await compareSecond_(x_.second_, y_.second_, $task))
|
|
266
|
-
return
|
|
267
|
-
}
|
|
268
238
|
}
|
|
269
239
|
{
|
|
270
240
|
const ordering_ = _1;
|
|
271
241
|
return ordering_
|
|
272
|
-
return
|
|
273
242
|
}
|
|
274
243
|
}
|
|
275
244
|
})
|
|
@@ -300,24 +269,19 @@ return (async (_1, _2, $task) => {
|
|
|
300
269
|
{
|
|
301
270
|
const x_ = _1;
|
|
302
271
|
const y_ = _2;
|
|
303
|
-
|
|
304
|
-
if(_guard1) {
|
|
272
|
+
if((await lessThan_(x_, y_, $task))) {
|
|
305
273
|
return ff_core_Ordering.OrderingBefore()
|
|
306
|
-
return
|
|
307
274
|
}
|
|
308
275
|
}
|
|
309
276
|
{
|
|
310
277
|
const x_ = _1;
|
|
311
278
|
const y_ = _2;
|
|
312
|
-
|
|
313
|
-
if(_guard1) {
|
|
279
|
+
if((await lessThan_(y_, x_, $task))) {
|
|
314
280
|
return ff_core_Ordering.OrderingAfter()
|
|
315
|
-
return
|
|
316
281
|
}
|
|
317
282
|
}
|
|
318
283
|
{
|
|
319
284
|
return ff_core_Ordering.OrderingSame()
|
|
320
|
-
return
|
|
321
285
|
}
|
|
322
286
|
})
|
|
323
287
|
}
|
|
@@ -325,23 +289,14 @@ return
|
|
|
325
289
|
export function Ordering_toInt(self_) {
|
|
326
290
|
{
|
|
327
291
|
const _1 = self_;
|
|
328
|
-
{
|
|
329
292
|
if(_1.OrderingBefore) {
|
|
330
293
|
return (-1)
|
|
331
|
-
return
|
|
332
|
-
}
|
|
333
294
|
}
|
|
334
|
-
{
|
|
335
295
|
if(_1.OrderingSame) {
|
|
336
296
|
return 0
|
|
337
|
-
return
|
|
338
297
|
}
|
|
339
|
-
}
|
|
340
|
-
{
|
|
341
298
|
if(_1.OrderingAfter) {
|
|
342
299
|
return 1
|
|
343
|
-
return
|
|
344
|
-
}
|
|
345
300
|
}
|
|
346
301
|
}
|
|
347
302
|
}
|
|
@@ -349,23 +304,14 @@ return
|
|
|
349
304
|
export function Ordering_reverse(self_) {
|
|
350
305
|
{
|
|
351
306
|
const _1 = self_;
|
|
352
|
-
{
|
|
353
307
|
if(_1.OrderingBefore) {
|
|
354
308
|
return ff_core_Ordering.OrderingAfter()
|
|
355
|
-
return
|
|
356
|
-
}
|
|
357
309
|
}
|
|
358
|
-
{
|
|
359
310
|
if(_1.OrderingSame) {
|
|
360
311
|
return ff_core_Ordering.OrderingSame()
|
|
361
|
-
return
|
|
362
|
-
}
|
|
363
312
|
}
|
|
364
|
-
{
|
|
365
313
|
if(_1.OrderingAfter) {
|
|
366
314
|
return ff_core_Ordering.OrderingBefore()
|
|
367
|
-
return
|
|
368
|
-
}
|
|
369
315
|
}
|
|
370
316
|
}
|
|
371
317
|
}
|
|
@@ -373,23 +319,14 @@ return
|
|
|
373
319
|
export async function Ordering_toInt$(self_, $task) {
|
|
374
320
|
{
|
|
375
321
|
const _1 = self_;
|
|
376
|
-
{
|
|
377
322
|
if(_1.OrderingBefore) {
|
|
378
323
|
return (-1)
|
|
379
|
-
return
|
|
380
324
|
}
|
|
381
|
-
}
|
|
382
|
-
{
|
|
383
325
|
if(_1.OrderingSame) {
|
|
384
326
|
return 0
|
|
385
|
-
return
|
|
386
327
|
}
|
|
387
|
-
}
|
|
388
|
-
{
|
|
389
328
|
if(_1.OrderingAfter) {
|
|
390
329
|
return 1
|
|
391
|
-
return
|
|
392
|
-
}
|
|
393
330
|
}
|
|
394
331
|
}
|
|
395
332
|
}
|
|
@@ -397,23 +334,14 @@ return
|
|
|
397
334
|
export async function Ordering_reverse$(self_, $task) {
|
|
398
335
|
{
|
|
399
336
|
const _1 = self_;
|
|
400
|
-
{
|
|
401
337
|
if(_1.OrderingBefore) {
|
|
402
338
|
return ff_core_Ordering.OrderingAfter()
|
|
403
|
-
return
|
|
404
|
-
}
|
|
405
339
|
}
|
|
406
|
-
{
|
|
407
340
|
if(_1.OrderingSame) {
|
|
408
341
|
return ff_core_Ordering.OrderingSame()
|
|
409
|
-
return
|
|
410
|
-
}
|
|
411
342
|
}
|
|
412
|
-
{
|
|
413
343
|
if(_1.OrderingAfter) {
|
|
414
344
|
return ff_core_Ordering.OrderingBefore()
|
|
415
|
-
return
|
|
416
|
-
}
|
|
417
345
|
}
|
|
418
346
|
}
|
|
419
347
|
}
|
|
@@ -429,55 +357,29 @@ return ff_core_Ordering.OrderingSame()
|
|
|
429
357
|
|
|
430
358
|
export const ff_core_Ordering_Order$ff_core_Bool_Bool = {
|
|
431
359
|
compare_(x_, y_) {
|
|
432
|
-
{
|
|
433
360
|
const x_a = x_;
|
|
434
361
|
const y_a = y_;
|
|
435
|
-
{
|
|
436
|
-
if(!x_a) {
|
|
437
|
-
if(y_a) {
|
|
362
|
+
if(!x_a && y_a) {
|
|
438
363
|
return ff_core_Ordering.OrderingBefore()
|
|
439
|
-
return
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
364
|
}
|
|
443
|
-
{
|
|
444
|
-
if(x_a) {
|
|
445
|
-
if(!y_a) {
|
|
365
|
+
if(x_a && !y_a) {
|
|
446
366
|
return ff_core_Ordering.OrderingAfter()
|
|
447
|
-
return
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
367
|
}
|
|
451
368
|
{
|
|
452
369
|
return ff_core_Ordering.OrderingSame()
|
|
453
|
-
return
|
|
454
|
-
}
|
|
455
370
|
}
|
|
456
371
|
},
|
|
457
372
|
async compare_$(x_, y_, $task) {
|
|
458
|
-
{
|
|
459
373
|
const x_a = x_;
|
|
460
374
|
const y_a = y_;
|
|
461
|
-
{
|
|
462
|
-
if(!x_a) {
|
|
463
|
-
if(y_a) {
|
|
375
|
+
if(!x_a && y_a) {
|
|
464
376
|
return ff_core_Ordering.OrderingBefore()
|
|
465
|
-
return
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
377
|
}
|
|
469
|
-
{
|
|
470
|
-
if(x_a) {
|
|
471
|
-
if(!y_a) {
|
|
378
|
+
if(x_a && !y_a) {
|
|
472
379
|
return ff_core_Ordering.OrderingAfter()
|
|
473
|
-
return
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
380
|
}
|
|
477
381
|
{
|
|
478
382
|
return ff_core_Ordering.OrderingSame()
|
|
479
|
-
return
|
|
480
|
-
}
|
|
481
383
|
}
|
|
482
384
|
}
|
|
483
385
|
};
|
|
@@ -530,32 +432,24 @@ export function ff_core_Ordering_Order$ff_core_Pair_Pair(ff_core_Ordering_Order$
|
|
|
530
432
|
compare_(x_, y_) {
|
|
531
433
|
{
|
|
532
434
|
const _1 = ff_core_Ordering_Order$A.compare_(x_.first_, y_.first_);
|
|
533
|
-
{
|
|
534
435
|
if(_1.OrderingSame) {
|
|
535
436
|
return ff_core_Ordering_Order$B.compare_(x_.second_, y_.second_)
|
|
536
|
-
return
|
|
537
|
-
}
|
|
538
437
|
}
|
|
539
438
|
{
|
|
540
439
|
const o_ = _1;
|
|
541
440
|
return o_
|
|
542
|
-
return
|
|
543
441
|
}
|
|
544
442
|
}
|
|
545
443
|
},
|
|
546
444
|
async compare_$(x_, y_, $task) {
|
|
547
445
|
{
|
|
548
446
|
const _1 = ff_core_Ordering_Order$A.compare_(x_.first_, y_.first_);
|
|
549
|
-
{
|
|
550
447
|
if(_1.OrderingSame) {
|
|
551
448
|
return ff_core_Ordering_Order$B.compare_(x_.second_, y_.second_)
|
|
552
|
-
return
|
|
553
|
-
}
|
|
554
449
|
}
|
|
555
450
|
{
|
|
556
451
|
const o_ = _1;
|
|
557
452
|
return o_
|
|
558
|
-
return
|
|
559
453
|
}
|
|
560
454
|
}
|
|
561
455
|
}
|
|
@@ -566,7 +460,7 @@ compare_(x_, y_) {
|
|
|
566
460
|
let ordering_ = ff_core_Ordering.OrderingSame();
|
|
567
461
|
let i_ = 0;
|
|
568
462
|
while((((i_ < ff_core_List.List_size(x_)) && (i_ < ff_core_List.List_size(y_))) && (ordering_ === ff_core_Ordering.OrderingSame()))) {
|
|
569
|
-
ordering_ = ff_core_Ordering_Order$T.compare_(ff_core_List.
|
|
463
|
+
ordering_ = ff_core_Ordering_Order$T.compare_((x_[i_] ?? ff_core_List.internalGrab_(x_, i_)), (y_[i_] ?? ff_core_List.internalGrab_(y_, i_)));
|
|
570
464
|
i_ += 1
|
|
571
465
|
};
|
|
572
466
|
if((ordering_ !== ff_core_Ordering.OrderingSame())) {
|
|
@@ -579,7 +473,7 @@ async compare_$(x_, y_, $task) {
|
|
|
579
473
|
let ordering_ = ff_core_Ordering.OrderingSame();
|
|
580
474
|
let i_ = 0;
|
|
581
475
|
while((((i_ < ff_core_List.List_size(x_)) && (i_ < ff_core_List.List_size(y_))) && (ordering_ === ff_core_Ordering.OrderingSame()))) {
|
|
582
|
-
ordering_ = ff_core_Ordering_Order$T.compare_(ff_core_List.
|
|
476
|
+
ordering_ = ff_core_Ordering_Order$T.compare_((x_[i_] ?? ff_core_List.internalGrab_(x_, i_)), (y_[i_] ?? ff_core_List.internalGrab_(y_, i_)));
|
|
583
477
|
i_ += 1
|
|
584
478
|
};
|
|
585
479
|
if((ordering_ !== ff_core_Ordering.OrderingSame())) {
|
|
@@ -592,71 +486,35 @@ return ordering_
|
|
|
592
486
|
|
|
593
487
|
export const ff_core_Equal_Equal$ff_core_Ordering_Ordering = {
|
|
594
488
|
equals_(x_, y_) {
|
|
595
|
-
{
|
|
596
489
|
const x_a = x_;
|
|
597
490
|
const y_a = y_;
|
|
598
|
-
{
|
|
599
|
-
if(x_a.OrderingBefore) {
|
|
600
|
-
if(y_a.OrderingBefore) {
|
|
491
|
+
if(x_a.OrderingBefore && y_a.OrderingBefore) {
|
|
601
492
|
return true
|
|
602
|
-
return
|
|
603
493
|
}
|
|
604
|
-
|
|
605
|
-
}
|
|
606
|
-
{
|
|
607
|
-
if(x_a.OrderingSame) {
|
|
608
|
-
if(y_a.OrderingSame) {
|
|
494
|
+
if(x_a.OrderingSame && y_a.OrderingSame) {
|
|
609
495
|
return true
|
|
610
|
-
return
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
496
|
}
|
|
614
|
-
{
|
|
615
|
-
if(x_a.OrderingAfter) {
|
|
616
|
-
if(y_a.OrderingAfter) {
|
|
497
|
+
if(x_a.OrderingAfter && y_a.OrderingAfter) {
|
|
617
498
|
return true
|
|
618
|
-
return
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
499
|
}
|
|
622
500
|
{
|
|
623
501
|
return false
|
|
624
|
-
return
|
|
625
|
-
}
|
|
626
502
|
}
|
|
627
503
|
},
|
|
628
504
|
async equals_$(x_, y_, $task) {
|
|
629
|
-
{
|
|
630
505
|
const x_a = x_;
|
|
631
506
|
const y_a = y_;
|
|
632
|
-
{
|
|
633
|
-
if(x_a.OrderingBefore) {
|
|
634
|
-
if(y_a.OrderingBefore) {
|
|
507
|
+
if(x_a.OrderingBefore && y_a.OrderingBefore) {
|
|
635
508
|
return true
|
|
636
|
-
return
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
509
|
}
|
|
640
|
-
{
|
|
641
|
-
if(x_a.OrderingSame) {
|
|
642
|
-
if(y_a.OrderingSame) {
|
|
510
|
+
if(x_a.OrderingSame && y_a.OrderingSame) {
|
|
643
511
|
return true
|
|
644
|
-
return
|
|
645
|
-
}
|
|
646
512
|
}
|
|
647
|
-
|
|
648
|
-
{
|
|
649
|
-
if(x_a.OrderingAfter) {
|
|
650
|
-
if(y_a.OrderingAfter) {
|
|
513
|
+
if(x_a.OrderingAfter && y_a.OrderingAfter) {
|
|
651
514
|
return true
|
|
652
|
-
return
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
515
|
}
|
|
656
516
|
{
|
|
657
517
|
return false
|
|
658
|
-
return
|
|
659
|
-
}
|
|
660
518
|
}
|
|
661
519
|
}
|
|
662
520
|
};
|
|
@@ -107,7 +107,6 @@ const _1 = self_;
|
|
|
107
107
|
{
|
|
108
108
|
const _c = _1;
|
|
109
109
|
return ff_core_Pair.Pair(body_(self_.first_), _c.second_)
|
|
110
|
-
return
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
112
|
}
|
|
@@ -118,7 +117,6 @@ const _1 = self_;
|
|
|
118
117
|
{
|
|
119
118
|
const _c = _1;
|
|
120
119
|
return ff_core_Pair.Pair(_c.first_, body_(self_.second_))
|
|
121
|
-
return
|
|
122
120
|
}
|
|
123
121
|
}
|
|
124
122
|
}
|
|
@@ -133,7 +131,6 @@ const _1 = self_;
|
|
|
133
131
|
{
|
|
134
132
|
const _c = _1;
|
|
135
133
|
return ff_core_Pair.Pair((await body_(self_.first_, $task)), _c.second_)
|
|
136
|
-
return
|
|
137
134
|
}
|
|
138
135
|
}
|
|
139
136
|
}
|
|
@@ -144,7 +141,6 @@ const _1 = self_;
|
|
|
144
141
|
{
|
|
145
142
|
const _c = _1;
|
|
146
143
|
return ff_core_Pair.Pair(_c.first_, (await body_(self_.second_, $task)))
|
|
147
|
-
return
|
|
148
144
|
}
|
|
149
145
|
}
|
|
150
146
|
}
|
|
@@ -159,7 +155,6 @@ const _1 = self_;
|
|
|
159
155
|
{
|
|
160
156
|
const _c = _1;
|
|
161
157
|
return ff_core_Pair.Pair(body_(self_.first_), body_(self_.second_))
|
|
162
|
-
return
|
|
163
158
|
}
|
|
164
159
|
}
|
|
165
160
|
}
|
|
@@ -178,7 +173,6 @@ const _1 = self_;
|
|
|
178
173
|
{
|
|
179
174
|
const _c = _1;
|
|
180
175
|
return ff_core_Pair.Pair((await body_(self_.first_, $task)), (await body_(self_.second_, $task)))
|
|
181
|
-
return
|
|
182
176
|
}
|
|
183
177
|
}
|
|
184
178
|
}
|
|
@@ -218,44 +212,29 @@ return ff_core_Any.internalAnyTag_(((((("ff:core/Pair.Pair" + "[") + ff_core_Any
|
|
|
218
212
|
|
|
219
213
|
export function ff_core_Equal_Equal$ff_core_Pair_Pair(ff_core_Equal_Equal$A, ff_core_Equal_Equal$B) { return {
|
|
220
214
|
equals_(x_, y_) {
|
|
221
|
-
{
|
|
222
215
|
const x_a = x_;
|
|
223
216
|
const y_a = y_;
|
|
224
|
-
{
|
|
225
|
-
const _guard1 = (x_ === y_);
|
|
226
|
-
if(_guard1) {
|
|
217
|
+
if((x_ === y_)) {
|
|
227
218
|
return true
|
|
228
|
-
return
|
|
229
|
-
}
|
|
230
219
|
}
|
|
231
220
|
{
|
|
232
221
|
return (ff_core_Equal_Equal$A.equals_(x_.first_, y_.first_) && ff_core_Equal_Equal$B.equals_(x_.second_, y_.second_))
|
|
233
|
-
return
|
|
234
|
-
}
|
|
235
222
|
}
|
|
236
223
|
},
|
|
237
224
|
async equals_$(x_, y_, $task) {
|
|
238
|
-
{
|
|
239
225
|
const x_a = x_;
|
|
240
226
|
const y_a = y_;
|
|
241
|
-
{
|
|
242
|
-
const _guard1 = (x_ === y_);
|
|
243
|
-
if(_guard1) {
|
|
227
|
+
if((x_ === y_)) {
|
|
244
228
|
return true
|
|
245
|
-
return
|
|
246
|
-
}
|
|
247
229
|
}
|
|
248
230
|
{
|
|
249
231
|
return (ff_core_Equal_Equal$A.equals_(x_.first_, y_.first_) && ff_core_Equal_Equal$B.equals_(x_.second_, y_.second_))
|
|
250
|
-
return
|
|
251
|
-
}
|
|
252
232
|
}
|
|
253
233
|
}
|
|
254
234
|
}}
|
|
255
235
|
|
|
256
236
|
export function ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable_Serializable$A, ff_core_Serializable_Serializable$B) { return {
|
|
257
237
|
serializeUsing_(serialization_, value_) {
|
|
258
|
-
{
|
|
259
238
|
const serialization_a = serialization_;
|
|
260
239
|
const value_a = value_;
|
|
261
240
|
{
|
|
@@ -268,28 +247,22 @@ ff_core_Serializable_Serializable$A.serializeUsing_(serialization_, v_.first_);
|
|
|
268
247
|
ff_core_Serializable_Serializable$B.serializeUsing_(serialization_, v_.second_)
|
|
269
248
|
return
|
|
270
249
|
}
|
|
271
|
-
}
|
|
272
250
|
},
|
|
273
251
|
deserializeUsing_(serialization_) {
|
|
274
252
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
275
253
|
serialization_.offset_ += 1;
|
|
276
254
|
{
|
|
277
255
|
const _1 = variantIndex_;
|
|
278
|
-
{
|
|
279
256
|
if(_1 === 0) {
|
|
280
257
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 17), 0);
|
|
281
258
|
return ff_core_Pair.Pair(ff_core_Serializable_Serializable$A.deserializeUsing_(serialization_), ff_core_Serializable_Serializable$B.deserializeUsing_(serialization_))
|
|
282
|
-
return
|
|
283
|
-
}
|
|
284
259
|
}
|
|
285
260
|
{
|
|
286
261
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
287
|
-
return
|
|
288
262
|
}
|
|
289
263
|
}
|
|
290
264
|
},
|
|
291
265
|
async serializeUsing_$(serialization_, value_, $task) {
|
|
292
|
-
{
|
|
293
266
|
const serialization_a = serialization_;
|
|
294
267
|
const value_a = value_;
|
|
295
268
|
{
|
|
@@ -302,23 +275,18 @@ ff_core_Serializable_Serializable$A.serializeUsing_(serialization_, v_.first_);
|
|
|
302
275
|
ff_core_Serializable_Serializable$B.serializeUsing_(serialization_, v_.second_)
|
|
303
276
|
return
|
|
304
277
|
}
|
|
305
|
-
}
|
|
306
278
|
},
|
|
307
279
|
async deserializeUsing_$(serialization_, $task) {
|
|
308
280
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
309
281
|
serialization_.offset_ += 1;
|
|
310
282
|
{
|
|
311
283
|
const _1 = variantIndex_;
|
|
312
|
-
{
|
|
313
284
|
if(_1 === 0) {
|
|
314
285
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 17), 0);
|
|
315
286
|
return ff_core_Pair.Pair(ff_core_Serializable_Serializable$A.deserializeUsing_(serialization_), ff_core_Serializable_Serializable$B.deserializeUsing_(serialization_))
|
|
316
|
-
return
|
|
317
|
-
}
|
|
318
287
|
}
|
|
319
288
|
{
|
|
320
289
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
321
|
-
return
|
|
322
290
|
}
|
|
323
291
|
}
|
|
324
292
|
}
|
|
@@ -208,32 +208,19 @@ throw new Error('Function Path_relativeTo is missing on this target in sync cont
|
|
|
208
208
|
|
|
209
209
|
export function Path_endsWith(self_, parts_) {
|
|
210
210
|
function go_(pathOption_, reversed_) {
|
|
211
|
-
{
|
|
212
211
|
const pathOption_a = pathOption_;
|
|
213
212
|
const reversed_a = reversed_;
|
|
214
|
-
{
|
|
215
213
|
if(reversed_a.length === 0) {
|
|
216
214
|
return true
|
|
217
|
-
return
|
|
218
215
|
}
|
|
219
|
-
|
|
220
|
-
{
|
|
221
|
-
if(pathOption_a.Some) {
|
|
216
|
+
if(pathOption_a.Some && reversed_a.length >= 1) {
|
|
222
217
|
const path_ = pathOption_a.value_;
|
|
223
|
-
if(reversed_a.length > 0) {
|
|
224
218
|
const p_ = reversed_a[0];
|
|
225
219
|
const ps_ = reversed_a.slice(1);
|
|
226
220
|
return ((ff_core_Path.Path_base(path_) === p_) && go_(ff_core_Path.Path_parent(path_), ps_))
|
|
227
|
-
return
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
221
|
}
|
|
231
|
-
{
|
|
232
222
|
if(pathOption_a.None) {
|
|
233
223
|
return false
|
|
234
|
-
return
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
224
|
}
|
|
238
225
|
}
|
|
239
226
|
return go_(ff_core_Option.Some(self_), ff_core_List.List_reverse(parts_))
|
|
@@ -472,32 +459,19 @@ export async function Path_relativeTo$(self_, path_, $task) {
|
|
|
472
459
|
|
|
473
460
|
export async function Path_endsWith$(self_, parts_, $task) {
|
|
474
461
|
async function go_$(pathOption_, reversed_, $task) {
|
|
475
|
-
{
|
|
476
462
|
const pathOption_a = pathOption_;
|
|
477
463
|
const reversed_a = reversed_;
|
|
478
|
-
{
|
|
479
464
|
if(reversed_a.length === 0) {
|
|
480
465
|
return true
|
|
481
|
-
return
|
|
482
466
|
}
|
|
483
|
-
|
|
484
|
-
{
|
|
485
|
-
if(pathOption_a.Some) {
|
|
467
|
+
if(pathOption_a.Some && reversed_a.length >= 1) {
|
|
486
468
|
const path_ = pathOption_a.value_;
|
|
487
|
-
if(reversed_a.length > 0) {
|
|
488
469
|
const p_ = reversed_a[0];
|
|
489
470
|
const ps_ = reversed_a.slice(1);
|
|
490
471
|
return (((await ff_core_Path.Path_base$(path_, $task)) === p_) && (await go_$((await ff_core_Path.Path_parent$(path_, $task)), ps_, $task)))
|
|
491
|
-
return
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
472
|
}
|
|
495
|
-
{
|
|
496
473
|
if(pathOption_a.None) {
|
|
497
474
|
return false
|
|
498
|
-
return
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
475
|
}
|
|
502
476
|
}
|
|
503
477
|
return (await go_$(ff_core_Option.Some(self_), ff_core_List.List_reverse(parts_), $task))
|
|
@@ -216,8 +216,8 @@ export function Random_nextGauss(self_, mean_, standardDeviation_) {
|
|
|
216
216
|
export function Random_shuffleArray(self_, array_) {
|
|
217
217
|
ff_core_List.List_each(ff_core_Int.Int_until(0, (ff_core_Array.Array_size(array_) - 1)), ((i_) => {
|
|
218
218
|
const j_ = (ff_core_Random.Random_nextInt(self_, 0, (ff_core_Array.Array_size(array_) - i_)) + i_);
|
|
219
|
-
const value_ = ff_core_Array.
|
|
220
|
-
ff_core_Array.Array_set(array_, i_, ff_core_Array.
|
|
219
|
+
const value_ = (array_.array[i_] ?? ff_core_Array.internalGrab_(array_, i_));
|
|
220
|
+
ff_core_Array.Array_set(array_, i_, (array_.array[j_] ?? ff_core_Array.internalGrab_(array_, j_)));
|
|
221
221
|
ff_core_Array.Array_set(array_, j_, value_)
|
|
222
222
|
}))
|
|
223
223
|
}
|
|
@@ -275,8 +275,8 @@ throw new Error('Function Random_nextGauss is missing on this target in async co
|
|
|
275
275
|
export async function Random_shuffleArray$(self_, array_, $task) {
|
|
276
276
|
ff_core_List.List_each(ff_core_Int.Int_until(0, (ff_core_Array.Array_size(array_) - 1)), ((i_) => {
|
|
277
277
|
const j_ = (ff_core_Random.Random_nextInt(self_, 0, (ff_core_Array.Array_size(array_) - i_)) + i_);
|
|
278
|
-
const value_ = ff_core_Array.
|
|
279
|
-
ff_core_Array.Array_set(array_, i_, ff_core_Array.
|
|
278
|
+
const value_ = (array_.array[i_] ?? ff_core_Array.internalGrab_(array_, i_));
|
|
279
|
+
ff_core_Array.Array_set(array_, i_, (array_.array[j_] ?? ff_core_Array.internalGrab_(array_, j_)));
|
|
280
280
|
ff_core_Array.Array_set(array_, j_, value_)
|
|
281
281
|
}))
|
|
282
282
|
}
|