From 7d59ed80dc7a6125d2efa81021a56f2b53f3f903 Mon Sep 17 00:00:00 2001 From: Nevkontakte Date: Sat, 2 Oct 2021 15:18:45 +0100 Subject: [PATCH] Preserve position information for top-level variable declarations. This allows sourcemap to be generated for top-level variable declarations with initializer, for example: ```go var x = initX() ``` This is particularly helpful when debugging panics in such initializers. --- compiler/package.go | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/package.go b/compiler/package.go index 2751cf0ee..01dc6c011 100644 --- a/compiler/package.go +++ b/compiler/package.go @@ -360,6 +360,7 @@ func Compile(importPath string, files []*ast.File, fileSet *token.FileSet, impor lhs := make([]ast.Expr, len(init.Lhs)) for i, o := range init.Lhs { ident := ast.NewIdent(o.Name()) + ident.NamePos = o.Pos() funcCtx.pkgCtx.Defs[ident] = o lhs[i] = funcCtx.setType(ident, o.Type()) varsWithInit[o] = true