Add support for inferring kinds from ArrowTypeExpression

This commit is contained in:
Sam Vervaeck 2022-09-15 16:04:02 +02:00
parent 6110509c41
commit 83226621e3

View file

@ -867,6 +867,14 @@ export class Checker {
private inferKindFromTypeExpression(node: TypeExpression, env: KindEnv): Kind {
switch (node.kind) {
case SyntaxKind.ArrowTypeExpression:
{
for (const param of node.paramTypeExprs) {
this.unifyKind(this.inferKindFromTypeExpression(param, env), new KStar(), node);
}
this.unifyKind(this.inferKindFromTypeExpression(node.returnTypeExpr, env), new KStar(), node);
return new KStar();
}
case SyntaxKind.VarTypeExpression:
case SyntaxKind.ReferenceTypeExpression:
{