Improved type system checks
This commit is contained in:
@ -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 {
|
||||
|
Reference in New Issue
Block a user