Fix node type checks in arithmetic expressions.
This commit is contained in:
parent
c4a2358551
commit
fdf9a3aab7
|
@ -540,14 +540,18 @@ func NewFunctionCall(function *Function, args []Node) (Node, error) {
|
||||||
|
|
||||||
func nodesHaveTypes(nodes []Node, exprTypes []ExprType) bool {
|
func nodesHaveTypes(nodes []Node, exprTypes []ExprType) bool {
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
|
correctType := false
|
||||||
for _, exprType := range exprTypes {
|
for _, exprType := range exprTypes {
|
||||||
if node.Type() == exprType {
|
if node.Type() == exprType {
|
||||||
return true
|
correctType = true
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !correctType {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func NewArithExpr(opType BinOpType, lhs Node, rhs Node) (Node, error) {
|
func NewArithExpr(opType BinOpType, lhs Node, rhs Node) (Node, error) {
|
||||||
if !nodesHaveTypes([]Node{lhs, rhs}, []ExprType{SCALAR, VECTOR}) {
|
if !nodesHaveTypes([]Node{lhs, rhs}, []ExprType{SCALAR, VECTOR}) {
|
||||||
|
|
Loading…
Reference in New Issue