diff options
Diffstat (limited to 'vendor/github.com/d5/tengo')
-rw-r--r-- | vendor/github.com/d5/tengo/v2/README.md | 2 | ||||
-rw-r--r-- | vendor/github.com/d5/tengo/v2/compiler.go | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/vendor/github.com/d5/tengo/v2/README.md b/vendor/github.com/d5/tengo/v2/README.md index aa9caa73..b339bfd4 100644 --- a/vendor/github.com/d5/tengo/v2/README.md +++ b/vendor/github.com/d5/tengo/v2/README.md @@ -144,7 +144,7 @@ fmt.Println(res) // "success" - [Interoperability](https://github.com/d5/tengo/blob/master/docs/interoperability.md) - [Tengo CLI](https://github.com/d5/tengo/blob/master/docs/tengo-cli.md) - [Standard Library](https://github.com/d5/tengo/blob/master/docs/stdlib.md) -- Syntax Highlighters: [VSCode](https://github.com/lissein/vscode-tengo), [Atom](https://github.com/d5/tengo-atom) +- Syntax Highlighters: [VSCode](https://github.com/lissein/vscode-tengo), [Atom](https://github.com/d5/tengo-atom), [Vim](https://github.com/geseq/tengo-vim) - **Why the name Tengo?** It's from [1Q84](https://en.wikipedia.org/wiki/1Q84). diff --git a/vendor/github.com/d5/tengo/v2/compiler.go b/vendor/github.com/d5/tengo/v2/compiler.go index 6591603c..0d46a4d7 100644 --- a/vendor/github.com/d5/tengo/v2/compiler.go +++ b/vendor/github.com/d5/tengo/v2/compiler.go @@ -692,12 +692,15 @@ func (c *Compiler) compileAssign( return c.errorf(node, "operator ':=' not allowed with selector") } + _, isFunc := rhs[0].(*parser.FuncLit) symbol, depth, exists := c.symbolTable.Resolve(ident, false) if op == token.Define { if depth == 0 && exists { return c.errorf(node, "'%s' redeclared in this block", ident) } - symbol = c.symbolTable.Define(ident) + if isFunc { + symbol = c.symbolTable.Define(ident) + } } else { if !exists { return c.errorf(node, "unresolved reference '%s'", ident) @@ -718,6 +721,10 @@ func (c *Compiler) compileAssign( } } + if op == token.Define && !isFunc { + symbol = c.symbolTable.Define(ident) + } + switch op { case token.AddAssign: c.emit(node, parser.OpBinaryOp, int(token.Add)) |