mirror of
https://github.com/hanzoai/expr.git
synced 2026-09-24 16:58:58 +00:00
@@ -345,7 +345,6 @@ func (c *compiler) IntegerNode(node *ast.IntegerNode) {
|
||||
}
|
||||
c.emitPush(int32(node.Value))
|
||||
case reflect.Int64:
|
||||
panic(fmt.Sprintf("constant %d overflows int64", node.Value))
|
||||
c.emitPush(int64(node.Value))
|
||||
case reflect.Uint:
|
||||
if node.Value < 0 {
|
||||
|
||||
@@ -628,3 +628,25 @@ func TestCompile_optimizes_jumps(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompile_IntegerArgsFunc(t *testing.T) {
|
||||
env := mock.Env{}
|
||||
tests := []struct{ code string }{
|
||||
{"FuncInt(0)"},
|
||||
{"FuncInt8(0)"},
|
||||
{"FuncInt16(0)"},
|
||||
{"FuncInt32(0)"},
|
||||
{"FuncInt64(0)"},
|
||||
{"FuncUint(0)"},
|
||||
{"FuncUint8(0)"},
|
||||
{"FuncUint16(0)"},
|
||||
{"FuncUint32(0)"},
|
||||
{"FuncUint64(0)"},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.code, func(t *testing.T) {
|
||||
_, err := expr.Compile(tt.code, expr.Env(env))
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,46 @@ func (p Env) FuncTyped(_ string) int {
|
||||
return 2023
|
||||
}
|
||||
|
||||
func (p Env) FuncInt(_ int) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncUint(_ uint) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncInt8(_ float64) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncInt16(_ int16) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncInt32(_ int32) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncInt64(_ int64) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncUint8(_ uint8) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncUint16(_ uint16) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncUint32(_ uint32) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) FuncUint64(_ uint64) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (p Env) TimeEqualString(a time.Time, s string) bool {
|
||||
return a.Format("2006-01-02") == s
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user