operator-selector.go: Simplified selector for Boolean expressions
This commit is contained in:
parent
778d00677d
commit
98fc89e84f
@ -22,9 +22,19 @@ func trySelectorCase(ctx ExprContext, exprValue, caseSel any, caseIndex int) (ma
|
|||||||
selectedValue, err = caseData.caseExpr.Eval(ctx)
|
selectedValue, err = caseData.caseExpr.Eval(ctx)
|
||||||
match = true
|
match = true
|
||||||
} else if filterList, ok := caseData.filterList.value().([]*term); ok {
|
} else if filterList, ok := caseData.filterList.value().([]*term); ok {
|
||||||
if len(filterList) == 0 && exprValue == int64(caseIndex) {
|
if len(filterList) == 0 {
|
||||||
selectedValue, err = caseData.caseExpr.Eval(ctx)
|
var valueAsInt = int64(0)
|
||||||
match = true
|
if b, ok := exprValue.(bool); ok {
|
||||||
|
if !b {
|
||||||
|
valueAsInt = 1
|
||||||
|
}
|
||||||
|
} else if valueAsInt, ok = exprValue.(int64); !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if valueAsInt == int64(caseIndex) {
|
||||||
|
selectedValue, err = caseData.caseExpr.Eval(ctx)
|
||||||
|
match = true
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var caseValue any
|
var caseValue any
|
||||||
for _, caseTerm := range filterList {
|
for _, caseTerm := range filterList {
|
||||||
|
Loading…
Reference in New Issue
Block a user