Improved type system checks

This commit is contained in:
2025-02-10 14:09:27 +01:00
parent b2a9dc3aa7
commit 371059d08a
9 changed files with 49 additions and 61 deletions

View File

@ -24,17 +24,21 @@ func (f *Function) ExpressionToRegister(node *expression.Expression, register cp
}
if ast.IsFunctionCall(node) {
fn, err := f.CompileCall(node)
types, err := f.CompileCall(node)
if err != nil {
return nil, err
}
if register != f.CPU.Output[0] {
f.RegisterRegister(asm.MOVE, register, f.CPU.Output[0])
}
if fn == nil || len(fn.Output) == 0 {
return nil, err
if len(types) == 0 {
return nil, nil
}
return fn.Output[0].Type, err
return types[0], err
}
if node.Token.Kind == token.Array {