diff --git a/gnovm/pkg/gnolang/go2gno.go b/gnovm/pkg/gnolang/go2gno.go index 99e051f7913..338efa20fcc 100644 --- a/gnovm/pkg/gnolang/go2gno.go +++ b/gnovm/pkg/gnolang/go2gno.go @@ -471,6 +471,8 @@ func Go2Gno(fs *token.FileSet, gon ast.Node) (n Node) { PkgName: pkgName, Decls: decls, } + case *ast.EmptyStmt: + return &EmptyStmt{} default: panic(fmt.Sprintf("unknown Go type %v: %s\n", reflect.TypeOf(gon), diff --git a/gnovm/pkg/gnolang/op_exec.go b/gnovm/pkg/gnolang/op_exec.go index 900b5f8e9bb..5f71ffefa0c 100644 --- a/gnovm/pkg/gnolang/op_exec.go +++ b/gnovm/pkg/gnolang/op_exec.go @@ -769,6 +769,7 @@ EXEC_SWITCH: } m.PushOp(OpBody) m.PushStmt(b.GetBodyStmt()) + case *EmptyStmt: default: panic(fmt.Sprintf("unexpected statement %#v", s)) } diff --git a/gnovm/tests/files/goto_empty_stmt.gno b/gnovm/tests/files/goto_empty_stmt.gno new file mode 100644 index 00000000000..fd939de1045 --- /dev/null +++ b/gnovm/tests/files/goto_empty_stmt.gno @@ -0,0 +1,10 @@ +package main + +func main() { + println("Hi") + goto done +done: +} + +// Output: +// Hi \ No newline at end of file