From 486b5923932ea3e58a65177db7d12d15a082d8dc Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 16 Jul 2020 14:27:49 -0700 Subject: [PATCH] [dev.go2go] cmd/go2go: add -brackets option Change-Id: I5c3d36df3d84ad85d2fb70152f5692223cf6cfb6 Reviewed-on: https://go-review.googlesource.com/c/go/+/243161 Reviewed-by: Ian Lance Taylor --- src/cmd/go2go/doc.go | 8 +++++++- src/cmd/go2go/main.go | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/cmd/go2go/doc.go b/src/cmd/go2go/doc.go index 6ae79b2e03..2099ab7c8e 100644 --- a/src/cmd/go2go/doc.go +++ b/src/cmd/go2go/doc.go @@ -7,7 +7,13 @@ // // Usage: // -// go2go [arguments] +// go2go [options] [arguments] +// +// The only option is -brackets, which requires square brackets rather +// than parentheses for generic code. This is temporarily useful when +// translating code that uses square brackets to pass type arguments +// to generic function and types while not defining any generic +// functions or types itself. // // The commands are: // diff --git a/src/cmd/go2go/main.go b/src/cmd/go2go/main.go index a3543613ab..e1ab6867d9 100644 --- a/src/cmd/go2go/main.go +++ b/src/cmd/go2go/main.go @@ -26,6 +26,12 @@ var cmds = map[string]bool{ "translate": true, } +var useBrackets bool + +func init() { + flag.BoolVar(&useBrackets, "brackets", false, "expect square brackets for generics") +} + func main() { flag.Usage = usage flag.Parse() @@ -46,6 +52,9 @@ func main() { defer os.RemoveAll(importerTmpdir) importer := go2go.NewImporter(importerTmpdir) + if useBrackets { + importer.UseBrackets = true + } var rundir string if args[0] == "run" {