operator-unset.go: fixed function removal

This commit is contained in:
Celestino Amoroso 2024-07-13 09:07:33 +02:00
parent 032916d4fa
commit be3bb12f28
2 changed files with 4 additions and 3 deletions

View File

@ -23,7 +23,7 @@ func deleteContextItem(ctx ExprContext, opTerm *term, item any) (deleted bool, e
var size int
if strings.HasSuffix(name, "()") {
size = ctx.FuncCount()
ctx.DeleteVar(strings.TrimRight(name, "()"))
ctx.DeleteFunc(strings.TrimRight(name, "()"))
deleted = ctx.FuncCount() < size
} else {
size = ctx.VarCount()

View File

@ -13,10 +13,11 @@ func TestOperator(t *testing.T) {
inputs := []inputType{
/* 1 */ {`a=1; unset "a"; a`, nil, `undefined variable or function "a"`},
/* 2 */ {`a=1; unset ["a", "b"]`, int64(1), nil},
/* 3 */ {`f=func(){3}; unset "f()"`, int64(1), nil},
}
// t.Setenv("EXPR_PATH", ".")
runTestSuiteSpec(t, section, inputs, 2)
//runTestSuite(t, section, inputs)
//runTestSuiteSpec(t, section, inputs, 3)
runTestSuite(t, section, inputs)
}