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" {