diff --git a/src/cmd/compile/internal/devirtualize/devirtualize.go b/src/cmd/compile/internal/devirtualize/devirtualize.go index dfcdd42236d..cb4608a0246 100644 --- a/src/cmd/compile/internal/devirtualize/devirtualize.go +++ b/src/cmd/compile/internal/devirtualize/devirtualize.go @@ -387,6 +387,9 @@ func (s *State) assignments(n *ir.Name) []assignment { if fun == nil { base.FatalfAt(n.Pos(), "n.Curfn = ") } + if n.Class != ir.PAUTO { + base.FatalfAt(n.Pos(), "n.Class = %v; want = PAUTO", n.Class) + } if !n.Type().IsInterface() { base.FatalfAt(n.Pos(), "name passed to assignments is not of an interface type: %v", n.Type()) @@ -432,6 +435,9 @@ func (s *State) analyze(nodes ir.Nodes) { if n.Op() != ir.ONAME { base.FatalfAt(n.Pos(), "n.Op = %v; want = ONAME", n.Op()) } + if n.Class != ir.PAUTO { + return nil, -1 + } switch a := assignment.(type) { case nil: