Skip to content

Commit 40bda0b

Browse files
committed
Disable check for missing predicate during parseing
As we may not have env/fn override for disabled builtin just yet. For example, during expr.Run, or compile without expr.Env.
1 parent 552eb1b commit 40bda0b

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

test/issues/924/issue_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package issue_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/expr-lang/expr"
7+
"github.com/expr-lang/expr/internal/testify/require"
8+
)
9+
10+
func TestIssue924_allow_disabling_builtins_and_providing_fn_at_runtime(t *testing.T) {
11+
// We disable the builtin "upper", but do not env information,
12+
// but we can provide a function at runtime.
13+
program, err := expr.Compile(`upper(1)`, expr.DisableBuiltin("upper"))
14+
require.NoError(t, err)
15+
16+
env := map[string]any{
17+
"upper": func(a int) int { return a },
18+
}
19+
20+
out, err := expr.Run(program, env)
21+
require.NoError(t, err)
22+
require.Equal(t, 1, out)
23+
}

0 commit comments

Comments
 (0)