fez-lisp 1.6.66 → 1.6.67
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 +15 -2
package/package.json
CHANGED
package/src/check.js
CHANGED
@@ -828,6 +828,7 @@ const initArrayTypeRec = ({ rem, env }) => {
|
|
828
828
|
const initArrayType = ({ rem, env }) => {
|
829
829
|
const ret = initArrayTypeRec({ rem, env })
|
830
830
|
const known = ret.find((x) => x[0] !== ANY && x[0] !== UNKNOWN)
|
831
|
+
const isCollection = ret.length && ret[0] && ret[0][0] === COLLECTION
|
831
832
|
if (known && ret.length) {
|
832
833
|
if (Array.isArray(ret[0][0])) {
|
833
834
|
let head = ret[0][0]
|
@@ -844,12 +845,24 @@ const initArrayType = ({ rem, env }) => {
|
|
844
845
|
if (isSubType(sub) && sub.types.at(-1) === COLLECTION) sub.types.pop()
|
845
846
|
return {
|
846
847
|
[TYPE_PROP]: [APPLY],
|
847
|
-
[RETURNS]: [
|
848
|
+
[RETURNS]: [
|
849
|
+
COLLECTION,
|
850
|
+
isCollection
|
851
|
+
? new SubType(
|
852
|
+
isSubType(sub) ? [COLLECTION, ...sub] : [COLLECTION, main]
|
853
|
+
)
|
854
|
+
: new SubType(isSubType(sub) ? [...sub] : [main])
|
855
|
+
]
|
848
856
|
}
|
849
857
|
} else
|
850
858
|
return {
|
851
859
|
[TYPE_PROP]: [APPLY],
|
852
|
-
[RETURNS]: [
|
860
|
+
[RETURNS]: [
|
861
|
+
COLLECTION,
|
862
|
+
isCollection
|
863
|
+
? new SubType([COLLECTION, UNKNOWN])
|
864
|
+
: new SubType([UNKNOWN])
|
865
|
+
]
|
853
866
|
}
|
854
867
|
}
|
855
868
|
const resolveReturnType = ({
|