From f2034819c27c3dda6290dfbd3a4158a6874835db Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 25 Jul 2019 01:20:04 +0700 Subject: [PATCH] fix: blank identifier cause panic (#255) --- _test/assign8.go | 9 +++++++++ interp/cfg.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 _test/assign8.go diff --git a/_test/assign8.go b/_test/assign8.go new file mode 100644 index 00000000..75f258dc --- /dev/null +++ b/_test/assign8.go @@ -0,0 +1,9 @@ +package main + +func main() { + _ = 1 + println(1) +} + +// Output: +// 1 diff --git a/interp/cfg.go b/interp/cfg.go index 5b1b4bd4..82038622 100644 --- a/interp/cfg.go +++ b/interp/cfg.go @@ -343,7 +343,7 @@ func (interp *Interpreter) cfg(root *node) ([]*node, error) { dest, src := n.child[i], n.child[sbase+i] var sym *symbol var level int - if n.kind == defineStmt { + if n.kind == defineStmt || (n.kind == assignStmt && dest.ident == "_") { if src.typ != nil && src.typ.cat == nilT { err = src.cfgErrorf("use of untyped nil") break