From 5cf8a6b1aa6d8384af8899652074c5d863a18212 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 6 Apr 2015 12:29:37 -0700 Subject: [PATCH] go/types: remove dependency on go/ast/astutil This package was only imported for the trivial Unparen function. Change-Id: I14f8d91bc0afaa6ab3aa797a53e42e56b59ffcbe Reviewed-on: https://go-review.googlesource.com/8499 Reviewed-by: Alan Donovan --- go/types/builtins.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/go/types/builtins.go b/go/types/builtins.go index f3e88551..3da49b92 100644 --- a/go/types/builtins.go +++ b/go/types/builtins.go @@ -10,7 +10,6 @@ import ( "go/ast" "go/token" - "golang.org/x/tools/go/ast/astutil" "golang.org/x/tools/go/exact" ) @@ -608,7 +607,16 @@ func implicitArrayDeref(typ Type) Type { return typ } -func unparen(x ast.Expr) ast.Expr { return astutil.Unparen(x) } +// 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 + } +} func (check *Checker) complexArg(x *operand) bool { t, _ := x.typ.Underlying().(*Basic)