aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/reader.go2
-rw-r--r--src/cmd/compile/internal/noder/writer.go4
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)