fez-lisp 1.5.140 → 1.5.143
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/package.json +1 -1
- package/src/check.js +69 -8
- package/src/types.js +87 -114
package/package.json
CHANGED
package/src/check.js
CHANGED
@@ -46,7 +46,8 @@ import {
|
|
46
46
|
IS_ARGUMENT,
|
47
47
|
NUMBER,
|
48
48
|
SETTER,
|
49
|
-
NUMBER_SUBTYPE
|
49
|
+
NUMBER_SUBTYPE,
|
50
|
+
GENERIC
|
50
51
|
} from './types.js'
|
51
52
|
import {
|
52
53
|
Brr,
|
@@ -133,6 +134,9 @@ export const setPropToAtom = (stats, prop) => {
|
|
133
134
|
((stats[prop][0] = ATOM), (stats[prop][1] = NUMBER_SUBTYPE()))
|
134
135
|
)
|
135
136
|
}
|
137
|
+
const setReturnToGeneric = (stats, index) => {
|
138
|
+
stats[RETURNS] = [UNKNOWN, undefined, index]
|
139
|
+
}
|
136
140
|
export const setPropToPredicate = (stats, prop) => {
|
137
141
|
return (stats[prop][1] = BOOLEAN_SUBTYPE())
|
138
142
|
}
|
@@ -205,6 +209,8 @@ export const setTypeToAtom = (stats) =>
|
|
205
209
|
export const setTypeToCollection = (stats) =>
|
206
210
|
(isUnknownType(stats) || isAnyType(stats)) &&
|
207
211
|
(stats[TYPE_PROP][0] = COLLECTION)
|
212
|
+
export const setTypeToAbstraction = (stats) =>
|
213
|
+
(isUnknownType(stats) || isAnyType(stats)) && (stats[TYPE_PROP][0] = APPLY)
|
208
214
|
export const setReturnToAbbstraction = (stats) =>
|
209
215
|
isUnknownReturn(stats) && (stats[RETURNS][0] = APPLY)
|
210
216
|
export const setTypeRef = (stats, value) =>
|
@@ -227,10 +233,10 @@ export const setTypeToReturnRef = (stats, value) => {
|
|
227
233
|
// To prevent getters overwritting the array subtype
|
228
234
|
// Change main type if unknown
|
229
235
|
if (isUnknownType(stats) || isAnyType(stats))
|
230
|
-
stats[TYPE_PROP][0] = value[RETURNS][0]
|
236
|
+
if (!isUnknownReturn(value)) stats[TYPE_PROP][0] = value[RETURNS][0]
|
231
237
|
// cange sub type if it doesn't have
|
232
238
|
if (!hasSubType(stats) || getSubType(stats).has(UNKNOWN))
|
233
|
-
stats[TYPE_PROP][1] = value[RETURNS][1]
|
239
|
+
if (hasSubReturn(value)) stats[TYPE_PROP][1] = value[RETURNS][1]
|
234
240
|
}
|
235
241
|
export const setPropRef = (stats, prop, value) => {
|
236
242
|
return (
|
@@ -712,7 +718,15 @@ const resolveReturnType = ({ returns, rem, stack, prop, exp, name, env }) => {
|
|
712
718
|
})
|
713
719
|
})
|
714
720
|
checkPredicateNameDeep(name, exp, exp.slice(1), returns)
|
715
|
-
|
721
|
+
const index = env[name][STATS][ARGUMENTS]
|
722
|
+
? env[name][STATS][ARGUMENTS].findIndex(
|
723
|
+
(x) => x[STATS][SIGNATURE] === returns[VALUE]
|
724
|
+
)
|
725
|
+
: -1
|
726
|
+
if (index >= 0) {
|
727
|
+
setReturnToGeneric(env[name][STATS], index)
|
728
|
+
return true
|
729
|
+
} else if (!env[returns[VALUE]]) return false
|
716
730
|
else if (getType(env[returns[VALUE]][STATS]) === APPLY) {
|
717
731
|
if (returns[TYPE] === WORD)
|
718
732
|
setReturnToAbbstraction(env[name][STATS])
|
@@ -720,12 +734,59 @@ const resolveReturnType = ({ returns, rem, stack, prop, exp, name, env }) => {
|
|
720
734
|
// ALWAYS APPLY
|
721
735
|
// rest.at(-1)[0][TYPE] === APPLY
|
722
736
|
// Here is upon application to store the result in the variable
|
737
|
+
|
723
738
|
if (isUnknownType(env[name][STATS]))
|
724
739
|
stagger(stack, 'prepend', exp, () => {
|
725
|
-
|
726
|
-
env[name][STATS]
|
727
|
-
|
728
|
-
|
740
|
+
if (env[returns[VALUE]][STATS][RETURNS].length === 3) {
|
741
|
+
// env[name][STATS][TYPE_PROP] =
|
742
|
+
const genericReturn =
|
743
|
+
rem.slice(1)[env[returns[VALUE]][STATS][RETURNS][2]]
|
744
|
+
const head = isLeaf(genericReturn)
|
745
|
+
? genericReturn
|
746
|
+
: genericReturn[0]
|
747
|
+
switch (head[TYPE]) {
|
748
|
+
case ATOM:
|
749
|
+
setTypeToAtom(env[name][STATS])
|
750
|
+
break
|
751
|
+
case WORD:
|
752
|
+
if (env[head[VALUE]])
|
753
|
+
setStatsRef(env[name], env[head[VALUE]])
|
754
|
+
break
|
755
|
+
case APPLY:
|
756
|
+
case KEYWORDS.ANONYMOUS_FUNCTION:
|
757
|
+
{
|
758
|
+
setTypeToAbstraction(env[name][STATS])
|
759
|
+
checkReturnType({
|
760
|
+
exp: [genericReturn],
|
761
|
+
stack,
|
762
|
+
name,
|
763
|
+
env
|
764
|
+
})
|
765
|
+
}
|
766
|
+
break
|
767
|
+
case KEYWORDS.CREATE_ARRAY:
|
768
|
+
{
|
769
|
+
setTypeToCollection(env[name][STATS])
|
770
|
+
setPropToSubReturn(
|
771
|
+
env[name][STATS],
|
772
|
+
TYPE_PROP,
|
773
|
+
initArrayType({ rem: genericReturn, env })
|
774
|
+
)
|
775
|
+
}
|
776
|
+
break
|
777
|
+
default:
|
778
|
+
if (env[head[VALUE]])
|
779
|
+
setTypeToReturn(
|
780
|
+
env[name][STATS],
|
781
|
+
env[head[VALUE]][STATS]
|
782
|
+
)
|
783
|
+
break
|
784
|
+
}
|
785
|
+
} else
|
786
|
+
setTypeToReturnRef(
|
787
|
+
env[name][STATS],
|
788
|
+
env[returns[VALUE]][STATS]
|
789
|
+
)
|
729
790
|
})
|
730
791
|
else setReturnRef(env[name][STATS], env[returns[VALUE]][STATS])
|
731
792
|
}
|
package/src/types.js
CHANGED
@@ -22,6 +22,7 @@ export const COLLECTION = 3
|
|
22
22
|
export const BOOLEAN = 5
|
23
23
|
export const NUMBER = 6
|
24
24
|
export const ANY = 4
|
25
|
+
export const GENERIC = 7
|
25
26
|
export const ANONYMOUS_FUNCTION_TYPE_PREFIX = 'lambda::annonymous::'
|
26
27
|
export const MAX_ARGUMENT_RETRY = 1
|
27
28
|
export const MAX_RETRY_DEFINITION = 100
|
@@ -33,6 +34,9 @@ export const BOOLEAN_SUBTYPE = () => new Set([BOOLEAN])
|
|
33
34
|
export const COLLECTION_SUBTYPE = () => new Set([COLLECTION])
|
34
35
|
export const NUMBER_SUBTYPE = () => new Set([NUMBER])
|
35
36
|
|
37
|
+
const SPECIAL_BOOLEAN = BOOLEAN_SUBTYPE()
|
38
|
+
const SPECIAL_COLLECTION = COLLECTION_SUBTYPE()
|
39
|
+
const SPECIAL_NUMBER = NUMBER_SUBTYPE()
|
36
40
|
export const toTypeNames = (type) => {
|
37
41
|
switch (type) {
|
38
42
|
case APPLY:
|
@@ -130,7 +134,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
130
134
|
}
|
131
135
|
}
|
132
136
|
],
|
133
|
-
[RETURNS]: [ATOM,
|
137
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
134
138
|
}
|
135
139
|
},
|
136
140
|
[STATIC_TYPES.NUMBER]: {
|
@@ -151,7 +155,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
151
155
|
}
|
152
156
|
}
|
153
157
|
],
|
154
|
-
[RETURNS]: [ATOM,
|
158
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
155
159
|
}
|
156
160
|
},
|
157
161
|
[STATIC_TYPES.COLLECTION]: {
|
@@ -400,9 +404,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
400
404
|
[STATS]: {
|
401
405
|
retried: 0,
|
402
406
|
[SIGNATURE]: PLACEHOLDER,
|
403
|
-
[TYPE_PROP]: [ATOM],
|
404
|
-
[RETURNS]: [ATOM],
|
405
|
-
|
407
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
408
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
406
409
|
[ARGUMENTS]: [],
|
407
410
|
[ARG_COUNT]: 0
|
408
411
|
}
|
@@ -411,15 +414,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
411
414
|
[STATS]: {
|
412
415
|
retried: 0,
|
413
416
|
[SIGNATURE]: PLACEHOLDER,
|
414
|
-
[TYPE_PROP]: [ATOM],
|
415
|
-
[RETURNS]: [ATOM],
|
416
|
-
|
417
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
418
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
417
419
|
[ARGUMENTS]: [],
|
418
420
|
[ARG_COUNT]: 0
|
419
421
|
}
|
420
422
|
}
|
421
423
|
],
|
422
|
-
[RETURNS]: [ATOM,
|
424
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
423
425
|
}
|
424
426
|
},
|
425
427
|
[KEYWORDS.MULTIPLICATION]: {
|
@@ -433,9 +435,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
433
435
|
[STATS]: {
|
434
436
|
retried: 0,
|
435
437
|
[SIGNATURE]: PLACEHOLDER,
|
436
|
-
[TYPE_PROP]: [ATOM],
|
437
|
-
[RETURNS]: [ATOM],
|
438
|
-
|
438
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
439
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
439
440
|
[ARGUMENTS]: [],
|
440
441
|
[ARG_COUNT]: 0
|
441
442
|
}
|
@@ -444,15 +445,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
444
445
|
[STATS]: {
|
445
446
|
retried: 0,
|
446
447
|
[SIGNATURE]: PLACEHOLDER,
|
447
|
-
[TYPE_PROP]: [ATOM],
|
448
|
-
[RETURNS]: [ATOM],
|
449
|
-
|
448
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
449
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
450
450
|
[ARGUMENTS]: [],
|
451
451
|
[ARG_COUNT]: 0
|
452
452
|
}
|
453
453
|
}
|
454
454
|
],
|
455
|
-
[RETURNS]: [ATOM,
|
455
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
456
456
|
}
|
457
457
|
},
|
458
458
|
[KEYWORDS.SUBTRACTION]: {
|
@@ -466,9 +466,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
466
466
|
[STATS]: {
|
467
467
|
retried: 0,
|
468
468
|
[SIGNATURE]: PLACEHOLDER,
|
469
|
-
[TYPE_PROP]: [ATOM],
|
470
|
-
[RETURNS]: [ATOM],
|
471
|
-
|
469
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
470
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
472
471
|
[ARGUMENTS]: [],
|
473
472
|
[ARG_COUNT]: 0
|
474
473
|
}
|
@@ -477,15 +476,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
477
476
|
[STATS]: {
|
478
477
|
retried: 0,
|
479
478
|
[SIGNATURE]: PLACEHOLDER,
|
480
|
-
[TYPE_PROP]: [ATOM],
|
481
|
-
[RETURNS]: [ATOM],
|
482
|
-
|
479
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
480
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
483
481
|
[ARGUMENTS]: [],
|
484
482
|
[ARG_COUNT]: 0
|
485
483
|
}
|
486
484
|
}
|
487
485
|
],
|
488
|
-
[RETURNS]: [ATOM,
|
486
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
489
487
|
}
|
490
488
|
},
|
491
489
|
[KEYWORDS.DIVISION]: {
|
@@ -499,9 +497,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
499
497
|
[STATS]: {
|
500
498
|
retried: 0,
|
501
499
|
[SIGNATURE]: PLACEHOLDER,
|
502
|
-
[TYPE_PROP]: [ATOM],
|
503
|
-
[RETURNS]: [ATOM],
|
504
|
-
|
500
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
501
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
505
502
|
[ARGUMENTS]: [],
|
506
503
|
[ARG_COUNT]: 0
|
507
504
|
}
|
@@ -510,15 +507,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
510
507
|
[STATS]: {
|
511
508
|
retried: 0,
|
512
509
|
[SIGNATURE]: PLACEHOLDER,
|
513
|
-
[TYPE_PROP]: [ATOM],
|
514
|
-
[RETURNS]: [ATOM],
|
515
|
-
|
510
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
511
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
516
512
|
[ARGUMENTS]: [],
|
517
513
|
[ARG_COUNT]: 0
|
518
514
|
}
|
519
515
|
}
|
520
516
|
],
|
521
|
-
[RETURNS]: [ATOM,
|
517
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
522
518
|
}
|
523
519
|
},
|
524
520
|
[KEYWORDS.REMAINDER_OF_DIVISION]: {
|
@@ -531,9 +527,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
531
527
|
[STATS]: {
|
532
528
|
retried: 0,
|
533
529
|
[SIGNATURE]: PLACEHOLDER,
|
534
|
-
[TYPE_PROP]: [ATOM],
|
535
|
-
[RETURNS]: [ATOM],
|
536
|
-
|
530
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
531
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
537
532
|
[ARGUMENTS]: [],
|
538
533
|
[ARG_COUNT]: 0
|
539
534
|
}
|
@@ -542,15 +537,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
542
537
|
[STATS]: {
|
543
538
|
retried: 0,
|
544
539
|
[SIGNATURE]: PLACEHOLDER,
|
545
|
-
[TYPE_PROP]: [ATOM],
|
546
|
-
[RETURNS]: [ATOM],
|
547
|
-
|
540
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
541
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
548
542
|
[ARGUMENTS]: [],
|
549
543
|
[ARG_COUNT]: 0
|
550
544
|
}
|
551
545
|
}
|
552
546
|
],
|
553
|
-
[RETURNS]: [ATOM,
|
547
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
554
548
|
}
|
555
549
|
},
|
556
550
|
[KEYWORDS.BITWISE_AND]: {
|
@@ -564,9 +558,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
564
558
|
[STATS]: {
|
565
559
|
retried: 0,
|
566
560
|
[SIGNATURE]: PLACEHOLDER,
|
567
|
-
[TYPE_PROP]: [ATOM],
|
568
|
-
[RETURNS]: [ATOM],
|
569
|
-
|
561
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
562
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
570
563
|
[ARGUMENTS]: [],
|
571
564
|
[ARG_COUNT]: 0
|
572
565
|
}
|
@@ -575,15 +568,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
575
568
|
[STATS]: {
|
576
569
|
retried: 0,
|
577
570
|
[SIGNATURE]: PLACEHOLDER,
|
578
|
-
[TYPE_PROP]: [ATOM],
|
579
|
-
[RETURNS]: [ATOM],
|
580
|
-
|
571
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
572
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
581
573
|
[ARGUMENTS]: [],
|
582
574
|
[ARG_COUNT]: 0
|
583
575
|
}
|
584
576
|
}
|
585
577
|
],
|
586
|
-
[RETURNS]: [ATOM,
|
578
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
587
579
|
}
|
588
580
|
},
|
589
581
|
[KEYWORDS.BITWISE_NOT]: {
|
@@ -597,15 +589,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
597
589
|
[STATS]: {
|
598
590
|
retried: 0,
|
599
591
|
[SIGNATURE]: PLACEHOLDER,
|
600
|
-
[TYPE_PROP]: [ATOM],
|
601
|
-
[RETURNS]: [ATOM],
|
602
|
-
|
592
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
593
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
603
594
|
[ARGUMENTS]: [],
|
604
595
|
[ARG_COUNT]: 0
|
605
596
|
}
|
606
597
|
}
|
607
598
|
],
|
608
|
-
[RETURNS]: [ATOM,
|
599
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
609
600
|
}
|
610
601
|
},
|
611
602
|
[KEYWORDS.BITWISE_OR]: {
|
@@ -619,9 +610,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
619
610
|
[STATS]: {
|
620
611
|
retried: 0,
|
621
612
|
[SIGNATURE]: PLACEHOLDER,
|
622
|
-
[TYPE_PROP]: [ATOM],
|
623
|
-
[RETURNS]: [ATOM],
|
624
|
-
|
613
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
614
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
625
615
|
[ARGUMENTS]: [],
|
626
616
|
[ARG_COUNT]: 0
|
627
617
|
}
|
@@ -630,15 +620,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
630
620
|
[STATS]: {
|
631
621
|
retried: 0,
|
632
622
|
[SIGNATURE]: PLACEHOLDER,
|
633
|
-
[TYPE_PROP]: [ATOM],
|
634
|
-
[RETURNS]: [ATOM],
|
635
|
-
|
623
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
624
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
636
625
|
[ARGUMENTS]: [],
|
637
626
|
[ARG_COUNT]: 0
|
638
627
|
}
|
639
628
|
}
|
640
629
|
],
|
641
|
-
[RETURNS]: [ATOM,
|
630
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
642
631
|
}
|
643
632
|
},
|
644
633
|
[KEYWORDS.BITWISE_XOR]: {
|
@@ -652,9 +641,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
652
641
|
[STATS]: {
|
653
642
|
retried: 0,
|
654
643
|
[SIGNATURE]: PLACEHOLDER,
|
655
|
-
[TYPE_PROP]: [ATOM],
|
656
|
-
[RETURNS]: [ATOM],
|
657
|
-
|
644
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
645
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
658
646
|
[ARGUMENTS]: [],
|
659
647
|
[ARG_COUNT]: 0
|
660
648
|
}
|
@@ -663,15 +651,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
663
651
|
[STATS]: {
|
664
652
|
retried: 0,
|
665
653
|
[SIGNATURE]: PLACEHOLDER,
|
666
|
-
[TYPE_PROP]: [ATOM],
|
667
|
-
[RETURNS]: [ATOM],
|
668
|
-
|
654
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
655
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
669
656
|
[ARGUMENTS]: [],
|
670
657
|
[ARG_COUNT]: 0
|
671
658
|
}
|
672
659
|
}
|
673
660
|
],
|
674
|
-
[RETURNS]: [ATOM,
|
661
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
675
662
|
}
|
676
663
|
},
|
677
664
|
[KEYWORDS.BITWISE_LEFT_SHIFT]: {
|
@@ -685,9 +672,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
685
672
|
[STATS]: {
|
686
673
|
retried: 0,
|
687
674
|
[SIGNATURE]: PLACEHOLDER,
|
688
|
-
[TYPE_PROP]: [ATOM],
|
689
|
-
[RETURNS]: [ATOM],
|
690
|
-
|
675
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
676
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
691
677
|
[ARGUMENTS]: [],
|
692
678
|
[ARG_COUNT]: 0
|
693
679
|
}
|
@@ -696,15 +682,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
696
682
|
[STATS]: {
|
697
683
|
retried: 0,
|
698
684
|
[SIGNATURE]: PLACEHOLDER,
|
699
|
-
[TYPE_PROP]: [ATOM],
|
700
|
-
[RETURNS]: [ATOM],
|
701
|
-
|
685
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
686
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
702
687
|
[ARGUMENTS]: [],
|
703
688
|
[ARG_COUNT]: 0
|
704
689
|
}
|
705
690
|
}
|
706
691
|
],
|
707
|
-
[RETURNS]: [ATOM,
|
692
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
708
693
|
}
|
709
694
|
},
|
710
695
|
[KEYWORDS.BITWISE_RIGHT_SHIFT]: {
|
@@ -718,9 +703,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
718
703
|
[STATS]: {
|
719
704
|
retried: 0,
|
720
705
|
[SIGNATURE]: PLACEHOLDER,
|
721
|
-
[TYPE_PROP]: [ATOM],
|
722
|
-
[RETURNS]: [ATOM],
|
723
|
-
|
706
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
707
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
724
708
|
[ARGUMENTS]: [],
|
725
709
|
[ARG_COUNT]: 0
|
726
710
|
}
|
@@ -729,15 +713,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
729
713
|
[STATS]: {
|
730
714
|
retried: 0,
|
731
715
|
[SIGNATURE]: PLACEHOLDER,
|
732
|
-
[TYPE_PROP]: [ATOM],
|
733
|
-
[RETURNS]: [ATOM],
|
734
|
-
|
716
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
717
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
735
718
|
[ARGUMENTS]: [],
|
736
719
|
[ARG_COUNT]: 0
|
737
720
|
}
|
738
721
|
}
|
739
722
|
],
|
740
|
-
[RETURNS]: [ATOM,
|
723
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
741
724
|
}
|
742
725
|
},
|
743
726
|
[KEYWORDS.GET_ARRAY]: {
|
@@ -754,7 +737,6 @@ export const SPECIAL_FORM_TYPES = {
|
|
754
737
|
[SIGNATURE]: PLACEHOLDER,
|
755
738
|
[TYPE_PROP]: [COLLECTION],
|
756
739
|
[RETURNS]: [COLLECTION],
|
757
|
-
|
758
740
|
[ARGUMENTS]: [],
|
759
741
|
[ARG_COUNT]: 0
|
760
742
|
}
|
@@ -763,9 +745,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
763
745
|
[STATS]: {
|
764
746
|
retried: 0,
|
765
747
|
[SIGNATURE]: PLACEHOLDER,
|
766
|
-
[TYPE_PROP]: [ATOM],
|
767
|
-
[RETURNS]: [ATOM],
|
768
|
-
|
748
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
749
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
769
750
|
[ARGUMENTS]: [],
|
770
751
|
[ARG_COUNT]: 0
|
771
752
|
}
|
@@ -787,7 +768,6 @@ export const SPECIAL_FORM_TYPES = {
|
|
787
768
|
[SIGNATURE]: PLACEHOLDER,
|
788
769
|
[TYPE_PROP]: [COLLECTION],
|
789
770
|
[RETURNS]: [COLLECTION],
|
790
|
-
|
791
771
|
[ARGUMENTS]: [],
|
792
772
|
[ARG_COUNT]: 0
|
793
773
|
}
|
@@ -796,9 +776,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
796
776
|
[STATS]: {
|
797
777
|
retried: 0,
|
798
778
|
[SIGNATURE]: PLACEHOLDER,
|
799
|
-
[TYPE_PROP]: [ATOM],
|
800
|
-
[RETURNS]: [ATOM],
|
801
|
-
|
779
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
780
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
802
781
|
[ARGUMENTS]: [],
|
803
782
|
[ARG_COUNT]: 0
|
804
783
|
}
|
@@ -809,7 +788,6 @@ export const SPECIAL_FORM_TYPES = {
|
|
809
788
|
[SIGNATURE]: PLACEHOLDER,
|
810
789
|
[TYPE_PROP]: [ANY],
|
811
790
|
[RETURNS]: [ANY],
|
812
|
-
|
813
791
|
[ARGUMENTS]: [],
|
814
792
|
[ARG_COUNT]: 0
|
815
793
|
}
|
@@ -831,12 +809,12 @@ export const SPECIAL_FORM_TYPES = {
|
|
831
809
|
[SIGNATURE]: PLACEHOLDER,
|
832
810
|
[TYPE_PROP]: [COLLECTION],
|
833
811
|
[RETURNS]: [COLLECTION],
|
834
|
-
|
835
812
|
[ARGUMENTS]: [],
|
836
813
|
[ARG_COUNT]: 0
|
837
814
|
}
|
838
815
|
}
|
839
816
|
],
|
817
|
+
// [GENERIC, new Set([PLACEHOLDER]), 0]
|
840
818
|
[RETURNS]: [COLLECTION]
|
841
819
|
}
|
842
820
|
},
|
@@ -853,13 +831,12 @@ export const SPECIAL_FORM_TYPES = {
|
|
853
831
|
[SIGNATURE]: PLACEHOLDER,
|
854
832
|
[TYPE_PROP]: [COLLECTION],
|
855
833
|
[RETURNS]: [COLLECTION],
|
856
|
-
|
857
834
|
[ARGUMENTS]: [],
|
858
835
|
[ARG_COUNT]: 0
|
859
836
|
}
|
860
837
|
}
|
861
838
|
],
|
862
|
-
[RETURNS]: [ATOM,
|
839
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER]
|
863
840
|
}
|
864
841
|
},
|
865
842
|
[KEYWORDS.IF]: {
|
@@ -873,9 +850,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
873
850
|
[STATS]: {
|
874
851
|
retried: 0,
|
875
852
|
[SIGNATURE]: PLACEHOLDER,
|
876
|
-
[TYPE_PROP]: [ATOM,
|
877
|
-
[RETURNS]: [ATOM],
|
878
|
-
|
853
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
854
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
879
855
|
[ARGUMENTS]: [],
|
880
856
|
[ARG_COUNT]: 0
|
881
857
|
}
|
@@ -915,14 +891,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
915
891
|
[STATS]: {
|
916
892
|
retried: Infinity,
|
917
893
|
[SIGNATURE]: PLACEHOLDER,
|
918
|
-
[TYPE_PROP]: [ATOM,
|
919
|
-
[RETURNS]: [ATOM,
|
894
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
895
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
920
896
|
[ARGUMENTS]: [],
|
921
897
|
[ARG_COUNT]: 0
|
922
898
|
}
|
923
899
|
}
|
924
900
|
],
|
925
|
-
[RETURNS]: [ATOM,
|
901
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
926
902
|
}
|
927
903
|
},
|
928
904
|
[KEYWORDS.EQUAL]: {
|
@@ -953,7 +929,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
953
929
|
}
|
954
930
|
}
|
955
931
|
],
|
956
|
-
[RETURNS]: [ATOM,
|
932
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
957
933
|
}
|
958
934
|
},
|
959
935
|
[KEYWORDS.LESS_THAN]: {
|
@@ -984,7 +960,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
984
960
|
}
|
985
961
|
}
|
986
962
|
],
|
987
|
-
[RETURNS]: [ATOM,
|
963
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
988
964
|
}
|
989
965
|
},
|
990
966
|
[KEYWORDS.GREATHER_THAN]: {
|
@@ -1016,7 +992,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
1016
992
|
}
|
1017
993
|
}
|
1018
994
|
],
|
1019
|
-
[RETURNS]: [ATOM,
|
995
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1020
996
|
}
|
1021
997
|
},
|
1022
998
|
[KEYWORDS.GREATHER_THAN_OR_EQUAL]: {
|
@@ -1047,7 +1023,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
1047
1023
|
}
|
1048
1024
|
}
|
1049
1025
|
],
|
1050
|
-
[RETURNS]: [ATOM,
|
1026
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1051
1027
|
}
|
1052
1028
|
},
|
1053
1029
|
[KEYWORDS.LESS_THAN_OR_EQUAL]: {
|
@@ -1078,7 +1054,7 @@ export const SPECIAL_FORM_TYPES = {
|
|
1078
1054
|
}
|
1079
1055
|
}
|
1080
1056
|
],
|
1081
|
-
[RETURNS]: [ATOM,
|
1057
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1082
1058
|
}
|
1083
1059
|
},
|
1084
1060
|
[KEYWORDS.AND]: {
|
@@ -1092,8 +1068,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1092
1068
|
[STATS]: {
|
1093
1069
|
retried: Infinity,
|
1094
1070
|
[SIGNATURE]: PLACEHOLDER,
|
1095
|
-
[TYPE_PROP]: [ATOM,
|
1096
|
-
[RETURNS]: [ATOM,
|
1071
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
1072
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
1097
1073
|
[ARGUMENTS]: [],
|
1098
1074
|
[ARG_COUNT]: 0
|
1099
1075
|
}
|
@@ -1102,14 +1078,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
1102
1078
|
[STATS]: {
|
1103
1079
|
retried: Infinity,
|
1104
1080
|
[SIGNATURE]: PLACEHOLDER,
|
1105
|
-
[TYPE_PROP]: [ATOM,
|
1106
|
-
[RETURNS]: [ATOM,
|
1081
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
1082
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
1107
1083
|
[ARGUMENTS]: [],
|
1108
1084
|
[ARG_COUNT]: 0
|
1109
1085
|
}
|
1110
1086
|
}
|
1111
1087
|
],
|
1112
|
-
[RETURNS]: [ATOM,
|
1088
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1113
1089
|
}
|
1114
1090
|
},
|
1115
1091
|
[KEYWORDS.OR]: {
|
@@ -1123,8 +1099,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1123
1099
|
[STATS]: {
|
1124
1100
|
retried: Infinity,
|
1125
1101
|
[SIGNATURE]: PLACEHOLDER,
|
1126
|
-
[TYPE_PROP]: [ATOM,
|
1127
|
-
[RETURNS]: [ATOM,
|
1102
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
1103
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
1128
1104
|
[ARGUMENTS]: [],
|
1129
1105
|
[ARG_COUNT]: 0
|
1130
1106
|
}
|
@@ -1133,14 +1109,14 @@ export const SPECIAL_FORM_TYPES = {
|
|
1133
1109
|
[STATS]: {
|
1134
1110
|
retried: Infinity,
|
1135
1111
|
[SIGNATURE]: PLACEHOLDER,
|
1136
|
-
[TYPE_PROP]: [ATOM,
|
1137
|
-
[RETURNS]: [ATOM,
|
1112
|
+
[TYPE_PROP]: [ATOM, SPECIAL_BOOLEAN],
|
1113
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN],
|
1138
1114
|
[ARGUMENTS]: [],
|
1139
1115
|
[ARG_COUNT]: 0
|
1140
1116
|
}
|
1141
1117
|
}
|
1142
1118
|
],
|
1143
|
-
[RETURNS]: [ATOM,
|
1119
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1144
1120
|
}
|
1145
1121
|
},
|
1146
1122
|
[KEYWORDS.IS_ATOM]: {
|
@@ -1156,13 +1132,12 @@ export const SPECIAL_FORM_TYPES = {
|
|
1156
1132
|
[SIGNATURE]: PLACEHOLDER,
|
1157
1133
|
[TYPE_PROP]: [ANY],
|
1158
1134
|
[RETURNS]: [ANY],
|
1159
|
-
|
1160
1135
|
[ARGUMENTS]: [],
|
1161
1136
|
[ARG_COUNT]: 0
|
1162
1137
|
}
|
1163
1138
|
}
|
1164
1139
|
],
|
1165
|
-
[RETURNS]: [ATOM,
|
1140
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1166
1141
|
}
|
1167
1142
|
},
|
1168
1143
|
[KEYWORDS.IS_LAMBDA]: {
|
@@ -1178,13 +1153,12 @@ export const SPECIAL_FORM_TYPES = {
|
|
1178
1153
|
[SIGNATURE]: PLACEHOLDER,
|
1179
1154
|
[TYPE_PROP]: [ANY],
|
1180
1155
|
[RETURNS]: [ANY],
|
1181
|
-
|
1182
1156
|
[ARGUMENTS]: [],
|
1183
1157
|
[ARG_COUNT]: 0
|
1184
1158
|
}
|
1185
1159
|
}
|
1186
1160
|
],
|
1187
|
-
[RETURNS]: [ATOM,
|
1161
|
+
[RETURNS]: [ATOM, SPECIAL_BOOLEAN]
|
1188
1162
|
}
|
1189
1163
|
},
|
1190
1164
|
[KEYWORDS.ERROR]: {
|
@@ -1200,7 +1174,6 @@ export const SPECIAL_FORM_TYPES = {
|
|
1200
1174
|
[SIGNATURE]: PLACEHOLDER,
|
1201
1175
|
[TYPE_PROP]: [COLLECTION],
|
1202
1176
|
[RETURNS]: [COLLECTION],
|
1203
|
-
|
1204
1177
|
[ARGUMENTS]: [],
|
1205
1178
|
[ARG_COUNT]: 0
|
1206
1179
|
}
|