From 48e2a5be4486186d3ad737b936a6ecc45dbc4f29 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 7 Apr 2015 13:19:34 -0700 Subject: [PATCH] cmd/vet: remove dependency on go/ast/astutil This package was only imported for the trivial Unparen function. Change-Id: I0ead916a7fdb469a26b4fe99c6964a8ed1438c49 Reviewed-on: https://go-review.googlesource.com/8566 Reviewed-by: Rob Pike --- cmd/vet/bool.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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 + } +}