summaryrefslogtreecommitdiff
path: root/src/pkg/go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/go')
-rw-r--r--src/pkg/go/printer/nodes.go12
-rw-r--r--src/pkg/go/printer/testdata/declarations.golden7
-rw-r--r--src/pkg/go/printer/testdata/declarations.input7
3 files changed, 17 insertions, 9 deletions
diff --git a/src/pkg/go/printer/nodes.go b/src/pkg/go/printer/nodes.go
index dd6b1db6b..6096751bd 100644
--- a/src/pkg/go/printer/nodes.go
+++ b/src/pkg/go/printer/nodes.go
@@ -241,19 +241,13 @@ func (p *printer) signature(params, result []*ast.Field, multiLine *bool) {
p.parameters(params, multiLine)
if result != nil {
p.print(blank)
-
if len(result) == 1 && result[0].Names == nil {
- // single anonymous result; no ()'s unless it's a function type
- f := result[0]
- if _, isFtyp := f.Type.(*ast.FuncType); !isFtyp {
- p.expr(f.Type, multiLine)
- return
- }
+ // single anonymous result; no ()'s
+ p.expr(result[0].Type, multiLine)
+ return
}
-
p.parameters(result, multiLine)
}
- return
}
diff --git a/src/pkg/go/printer/testdata/declarations.golden b/src/pkg/go/printer/testdata/declarations.golden
index 9998103cf..b15e52ad6 100644
--- a/src/pkg/go/printer/testdata/declarations.golden
+++ b/src/pkg/go/printer/testdata/declarations.golden
@@ -471,6 +471,13 @@ func _() {
}
+// formatting of function results
+func _() func() {}
+func _() func(int) { return nil }
+func _() func(int) int { return nil }
+func _() func(int) func(int) func() { return nil }
+
+
// formatting of consecutive single-line functions
func _() {}
func _() {}
diff --git a/src/pkg/go/printer/testdata/declarations.input b/src/pkg/go/printer/testdata/declarations.input
index fd80cb626..1d1dc45f0 100644
--- a/src/pkg/go/printer/testdata/declarations.input
+++ b/src/pkg/go/printer/testdata/declarations.input
@@ -468,6 +468,13 @@ func _() {
}
+// formatting of function results
+func _() func() {}
+func _() func(int) { return nil }
+func _() func(int) int { return nil }
+func _() func(int) func(int) func() { return nil }
+
+
// formatting of consecutive single-line functions
func _() {}
func _() {}