mirror of
https://github.com/hanzoai/expr.git
synced 2026-09-24 16:58:58 +00:00
Rename env to $env
This commit is contained in:
@@ -153,9 +153,9 @@ func TestBuiltin_types(t *testing.T) {
|
||||
{`first(ArrayOfInt)`, reflect.Int},
|
||||
{`last(ArrayOfString)`, reflect.String},
|
||||
{`last(ArrayOfInt)`, reflect.Int},
|
||||
{`get(env, 'str')`, reflect.String},
|
||||
{`get(env, 'num')`, reflect.Int},
|
||||
{`get(env, 'ArrayOfString')`, reflect.Slice},
|
||||
{`get($env, 'str')`, reflect.String},
|
||||
{`get($env, 'num')`, reflect.Int},
|
||||
{`get($env, 'ArrayOfString')`, reflect.Slice},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
+3
-3
@@ -135,7 +135,7 @@ func (v *visitor) NilNode(*ast.NilNode) (reflect.Type, info) {
|
||||
}
|
||||
|
||||
func (v *visitor) IdentifierNode(node *ast.IdentifierNode) (reflect.Type, info) {
|
||||
if node.Value == "env" {
|
||||
if node.Value == "$env" {
|
||||
return mapType, info{}
|
||||
}
|
||||
if fn, ok := v.config.Functions[node.Value]; ok {
|
||||
@@ -399,7 +399,7 @@ func (v *visitor) MemberNode(node *ast.MemberNode) (reflect.Type, info) {
|
||||
base, _ := v.visit(node.Node)
|
||||
prop, _ := v.visit(node.Property)
|
||||
|
||||
if an, ok := node.Node.(*ast.IdentifierNode); ok && an.Value == "env" {
|
||||
if an, ok := node.Node.(*ast.IdentifierNode); ok && an.Value == "$env" {
|
||||
// If the index is a constant string, can save some
|
||||
// cycles later by finding the type of its referent
|
||||
if name, ok := node.Property.(*ast.StringNode); ok {
|
||||
@@ -660,7 +660,7 @@ func (v *visitor) checkBuiltinGet(node *ast.BuiltinNode) (reflect.Type, info) {
|
||||
|
||||
val := node.Arguments[0]
|
||||
prop := node.Arguments[1]
|
||||
if id, ok := val.(*ast.IdentifierNode); ok && id.Value == "env" {
|
||||
if id, ok := val.(*ast.IdentifierNode); ok && id.Value == "$env" {
|
||||
if s, ok := prop.(*ast.StringNode); ok {
|
||||
return v.config.Types[s.Value].Type, info{}
|
||||
}
|
||||
|
||||
@@ -946,9 +946,9 @@ func TestCheck_env_keyword(t *testing.T) {
|
||||
input string
|
||||
want reflect.Kind
|
||||
}{
|
||||
{`env['str']`, reflect.String},
|
||||
{`env['num']`, reflect.Int},
|
||||
{`env[name]`, reflect.Interface},
|
||||
{`$env['str']`, reflect.String},
|
||||
{`$env['num']`, reflect.Int},
|
||||
{`$env[name]`, reflect.Interface},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
@@ -227,7 +227,7 @@ func (c *compiler) NilNode(_ *ast.NilNode) {
|
||||
}
|
||||
|
||||
func (c *compiler) IdentifierNode(node *ast.IdentifierNode) {
|
||||
if node.Value == "env" {
|
||||
if node.Value == "$env" {
|
||||
c.emit(OpLoadEnv)
|
||||
return
|
||||
}
|
||||
|
||||
+2
-2
@@ -54,7 +54,7 @@ func CreateTypesTable(i interface{}) TypesTable {
|
||||
for _, key := range v.MapKeys() {
|
||||
value := v.MapIndex(key)
|
||||
if key.Kind() == reflect.String && value.IsValid() && value.CanInterface() {
|
||||
if key.String() == "env" { // Could check for all keywords here
|
||||
if key.String() == "$env" { // Could check for all keywords here
|
||||
panic("attempt to misuse env keyword as env map key")
|
||||
}
|
||||
types[key.String()] = Tag{Type: reflect.TypeOf(value.Interface())}
|
||||
@@ -97,7 +97,7 @@ func FieldsFromStruct(t reflect.Type) TypesTable {
|
||||
}
|
||||
}
|
||||
}
|
||||
if fn := FieldName(f); fn == "env" { // Could check for all keywords here
|
||||
if fn := FieldName(f); fn == "$env" { // Could check for all keywords here
|
||||
panic("attempt to misuse env keyword as env struct field tag")
|
||||
} else {
|
||||
types[FieldName(f)] = Tag{
|
||||
|
||||
+18
-18
@@ -1688,24 +1688,24 @@ func TestEnv_keyword(t *testing.T) {
|
||||
code string
|
||||
want interface{}
|
||||
}{
|
||||
{"env['space test']", "ok"},
|
||||
{"env['Section 1-2a']", "ok"},
|
||||
{`env["c:\\ndrive\\2015 Information Table"]`, "ok"},
|
||||
{"env['%*worst function name ever!!']", "ok"},
|
||||
{"env['String Map'].one", "two"},
|
||||
{"env['1'] + env['2']", "ok"},
|
||||
{"1 + env['num'] + env['num']", 21},
|
||||
{"MIN(env['num'],0)", 0},
|
||||
{"env['nu' + 'm']", 10},
|
||||
{"env[red + irect]", 10},
|
||||
{"env['String Map']?.five", ""},
|
||||
{"env.red", "n"},
|
||||
{"env?.blue", nil},
|
||||
{"env.mylist[1]", 2},
|
||||
{"env?.OtherMap?.a", "b"},
|
||||
{"env?.OtherMap?.d", ""},
|
||||
{"'num' in env", true},
|
||||
{"get(env, 'num')", 10},
|
||||
{"$env['space test']", "ok"},
|
||||
{"$env['Section 1-2a']", "ok"},
|
||||
{`$env["c:\\ndrive\\2015 Information Table"]`, "ok"},
|
||||
{"$env['%*worst function name ever!!']", "ok"},
|
||||
{"$env['String Map'].one", "two"},
|
||||
{"$env['1'] + $env['2']", "ok"},
|
||||
{"1 + $env['num'] + $env['num']", 21},
|
||||
{"MIN($env['num'],0)", 0},
|
||||
{"$env['nu' + 'm']", 10},
|
||||
{"$env[red + irect]", 10},
|
||||
{"$env['String Map']?.five", ""},
|
||||
{"$env.red", "n"},
|
||||
{"$env?.blue", nil},
|
||||
{"$env.mylist[1]", 2},
|
||||
{"$env?.OtherMap?.a", "b"},
|
||||
{"$env?.OtherMap?.d", ""},
|
||||
{"'num' in $env", true},
|
||||
{"get($env, 'num')", 10},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Reference in New Issue
Block a user