diff --git a/cmd/vet/bool.go b/cmd/vet/bool.go index 37aac68e..07c2a93d 100644 --- a/cmd/vet/bool.go +++ b/cmd/vet/bool.go @@ -9,8 +9,6 @@ package main import ( "go/ast" "go/token" - - "golang.org/x/tools/go/ast/astutil" ) func init() { @@ -164,7 +162,7 @@ func hasSideEffects(e ast.Expr) bool { // split returns []{d, c, b, a}. func (op boolOp) split(e ast.Expr) (exprs []ast.Expr) { for { - e = astutil.Unparen(e) + e = unparen(e) if b, ok := e.(*ast.BinaryExpr); ok && b.Op == op.tok { exprs = append(exprs, op.split(b.Y)...) e = b.X @@ -175,3 +173,14 @@ func (op boolOp) split(e ast.Expr) (exprs []ast.Expr) { } return } + +// unparen returns e with any enclosing parentheses stripped. +func unparen(e ast.Expr) ast.Expr { + for { + p, ok := e.(*ast.ParenExpr) + if !ok { + return e + } + e = p.X + } +}