diff --git a/src/typechecker.ts b/src/typechecker.ts index 374538d..efc00d8 100644 --- a/src/typechecker.ts +++ b/src/typechecker.ts @@ -252,7 +252,11 @@ function check(expr: AST, expected: TypeAST, env: TypeEnv, subst: Subst): string if (expr.kind === 'list' && exp.kind === 'type-apply' && exp.constructor.kind === 'type-name' && exp.constructor.name === 'List') { const elemType = exp.args[0]; for (const elem of expr.elements) { - if (elem.kind === 'list-spread') continue; + if (elem.kind === 'list-spread') { + const err = check(elem.spread, exp, env, subst); + if (err) return err; + continue; + } const err = check(elem, elemType, env, subst); if (err) return err; }