diff options
Diffstat (limited to 'src/cmd/compile/internal/noder')
| -rw-r--r-- | src/cmd/compile/internal/noder/reader.go | 2 | ||||
| -rw-r--r-- | src/cmd/compile/internal/noder/writer.go | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index fb9df3284f..b8df7c9773 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -1957,7 +1957,7 @@ func (r *reader) switchStmt(label *types.Sym) ir.Node { pos := r.pos() if r.Bool() { pos := r.pos() - sym := typecheck.Lookup(r.String()) + _, sym := r.localIdent() ident = ir.NewIdent(pos, sym) } x := r.expr() diff --git a/src/cmd/compile/internal/noder/writer.go b/src/cmd/compile/internal/noder/writer.go index 0b1d41d750..198bae7190 100644 --- a/src/cmd/compile/internal/noder/writer.go +++ b/src/cmd/compile/internal/noder/writer.go @@ -1484,6 +1484,10 @@ func (w *writer) switchStmt(stmt *syntax.SwitchStmt) { w.pos(guard) if tag := guard.Lhs; w.Bool(tag != nil) { w.pos(tag) + + // Like w.localIdent, but we don't have a types2.Object. + w.Sync(pkgbits.SyncLocalIdent) + w.pkg(w.p.curpkg) w.String(tag.Value) } w.expr(guard.X) |
