diff options
| author | Dan Scales <danscales@google.com> | 2021-07-13 22:21:54 -0700 |
|---|---|---|
| committer | Dan Scales <danscales@google.com> | 2021-07-14 21:58:10 +0000 |
| commit | e3e6cd30221185d6e4fa76f109f96fdede580729 (patch) | |
| tree | 7457c8f438c9633f7a1f29f5c9e84f3d1201ea2a /src/cmd/compile/internal/noder/expr.go | |
| parent | 2b10d7ff0be9ee5ebe1856349714f78936bf059d (diff) | |
| download | go-e3e6cd30221185d6e4fa76f109f96fdede580729.tar.xz | |
[dev.typeparams] cmd/compile: fix escape printout bugs for -G=3
Call SetPos() in g.expr() so it is available for any new nodes.
Print out the actual type for a composite literal in exprFmt() if
available, else use Ntype if available. Seems generally useful, since
the type name is always more useful than just 'composite literal'.
Fixes a bunch of cases that are excluded in run.go for -G=3.
Change-Id: I40b9bba88027ea4f36d419e3989e7f14891bea04
Reviewed-on: https://go-review.googlesource.com/c/go/+/334609
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/noder/expr.go')
| -rw-r--r-- | src/cmd/compile/internal/noder/expr.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/noder/expr.go b/src/cmd/compile/internal/noder/expr.go index 16470a5449..66ce1bfe4c 100644 --- a/src/cmd/compile/internal/noder/expr.go +++ b/src/cmd/compile/internal/noder/expr.go @@ -88,6 +88,11 @@ func (g *irgen) expr(expr syntax.Expr) ir.Node { func (g *irgen) expr0(typ types2.Type, expr syntax.Expr) ir.Node { pos := g.pos(expr) + assert(pos.IsKnown()) + + // Set base.Pos for transformation code that still uses base.Pos, rather than + // the pos of the node being converted. + base.Pos = pos switch expr := expr.(type) { case *syntax.Name: |
