operator-sum.go: adding item to a list is no more allowed. The sum operator '+' now ca only join two list.

This commit is contained in:
Celestino Amoroso 2024-05-19 02:20:36 +02:00
parent 6c14c07d66
commit 9967918418

View File

@ -38,15 +38,28 @@ func evalPlus(ctx ExprContext, self *term) (v any, err error) {
rightInt, _ := rightValue.(int64)
v = leftInt + rightInt
}
} else if IsList(leftValue) || IsList(rightValue) {
// } else if IsList(leftValue) || IsList(rightValue) {
// var leftList, rightList *ListType
// var ok bool
// if leftList, ok = leftValue.(*ListType); !ok {
// leftList = &ListType{leftValue}
// }
// if rightList, ok = rightValue.(*ListType); !ok {
// rightList = &ListType{rightValue}
// }
// sumList := make(ListType, 0, len(*leftList)+len(*rightList))
// for _, item := range *leftList {
// sumList = append(sumList, item)
// }
// for _, item := range *rightList {
// sumList = append(sumList, item)
// }
// v = &sumList
} else if IsList(leftValue) && IsList(rightValue) {
var leftList, rightList *ListType
var ok bool
if leftList, ok = leftValue.(*ListType); !ok {
leftList = &ListType{leftValue}
}
if rightList, ok = rightValue.(*ListType); !ok {
rightList = &ListType{rightValue}
}
leftList, _ = leftValue.(*ListType)
rightList, _ = rightValue.(*ListType)
sumList := make(ListType, 0, len(*leftList)+len(*rightList))
for _, item := range *leftList {
sumList = append(sumList, item)