Implemented type checks
This commit is contained in:
parent
baa2463b4b
commit
cacee7260a
19 changed files with 199 additions and 79 deletions
|
@ -31,7 +31,7 @@ func (f *Function) ExpressionToRegister(node *expression.Expression, register cp
|
|||
}
|
||||
|
||||
if fn == nil || len(fn.ReturnTypes) == 0 {
|
||||
return types.Invalid, err
|
||||
return types.Any, err
|
||||
}
|
||||
|
||||
return fn.ReturnTypes[0], err
|
||||
|
@ -72,6 +72,10 @@ func (f *Function) ExpressionToRegister(node *expression.Expression, register cp
|
|||
return types.Invalid, err
|
||||
}
|
||||
|
||||
if typ == types.Pointer && (node.Token.Kind == token.Add || node.Token.Kind == token.Sub) && right.Token.Kind == token.Identifier && f.VariableByName(right.Token.Text(f.File.Bytes)).Type == types.Pointer {
|
||||
typ = types.Int
|
||||
}
|
||||
|
||||
err = f.Execute(node.Token, register, right)
|
||||
|
||||
if register != final {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue