diff options
| author | Matthew Dempsky <mdempsky@google.com> | 2023-08-19 22:32:08 -0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-08-21 21:39:33 +0000 |
| commit | d1593b7a4a8cd60e30bfc41df83fb22ab8393d51 (patch) | |
| tree | 47a4be0f42ee3eef93d47bad825e878d68293a75 /src/cmd | |
| parent | caf9e15fb76631ca692f4779135aec5b82a68370 (diff) | |
| download | go-d1593b7a4a8cd60e30bfc41df83fb22ab8393d51.tar.xz | |
cmd/compile: do some TODOs about Fatalf
Separate CL in case I'm mistaken.
Change-Id: I6b5fa0efb27a6b4fb4c133698bd7e2f01b4cccdb
Reviewed-on: https://go-review.googlesource.com/c/go/+/521195
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/compile/internal/devirtualize/devirtualize.go | 6 | ||||
| -rw-r--r-- | src/cmd/compile/internal/typecheck/expr.go | 12 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/cmd/compile/internal/devirtualize/devirtualize.go b/src/cmd/compile/internal/devirtualize/devirtualize.go index 93882a3496..ae9f24d9a5 100644 --- a/src/cmd/compile/internal/devirtualize/devirtualize.go +++ b/src/cmd/compile/internal/devirtualize/devirtualize.go @@ -129,11 +129,7 @@ func staticCall(call *ir.CallExpr) { call.SetOp(ir.OCALLINTER) call.X = x default: - // TODO(mdempsky): Turn back into Fatalf after more testing. - if base.Flag.LowerM != 0 { - base.WarnfAt(call.Pos(), "failed to devirtualize %v (%v)", x, x.Op()) - } - return + base.FatalfAt(call.Pos(), "failed to devirtualize %v (%v)", x, x.Op()) } // Duplicated logic from typecheck for function call return diff --git a/src/cmd/compile/internal/typecheck/expr.go b/src/cmd/compile/internal/typecheck/expr.go index edf0472567..7e685ab569 100644 --- a/src/cmd/compile/internal/typecheck/expr.go +++ b/src/cmd/compile/internal/typecheck/expr.go @@ -469,7 +469,9 @@ func dot(pos src.XPos, typ *types.Type, op ir.Op, x ir.Node, selection *types.Fi // inserted too. func XDotField(pos src.XPos, x ir.Node, sym *types.Sym) *ir.SelectorExpr { n := Expr(ir.NewSelectorExpr(pos, ir.OXDOT, x, sym)).(*ir.SelectorExpr) - // TODO(mdempsky): Assert n is ODOT/ODOTPTR. + if n.Op() != ir.ODOT && n.Op() != ir.ODOTPTR { + base.FatalfAt(pos, "unexpected result op: %v (%v)", n.Op(), n) + } return n } @@ -483,10 +485,14 @@ func XDotMethod(pos src.XPos, x ir.Node, sym *types.Sym, callee bool) *ir.Select n := ir.NewSelectorExpr(pos, ir.OXDOT, x, sym) if callee { n = Callee(n).(*ir.SelectorExpr) - // TODO(mdempsky): Assert n is ODOTMETH/ODOTINTER. + if n.Op() != ir.ODOTMETH && n.Op() != ir.ODOTINTER { + base.FatalfAt(pos, "unexpected result op: %v (%v)", n.Op(), n) + } } else { n = Expr(n).(*ir.SelectorExpr) - // TODO(mdempsky): Assert n is OMETHVALUE. + if n.Op() != ir.OMETHVALUE { + base.FatalfAt(pos, "unexpected result op: %v (%v)", n.Op(), n) + } } return n } |
