From 46871692c2ec86880fc6052451876cb84b9aa57c Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 26 Jan 2010 10:25:56 -0800 Subject: [PATCH] spec: allow func() func(). no longer ambiguous at top level, thanks to new semicolon rules. use gofmt layout for function types. Fixes #528. R=gri CC=golang-dev https://golang.org/cl/194077 --- doc/go_spec.html | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index b11aea959ae..b5931c110e1 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -909,7 +909,7 @@ must either all be present or all be absent. If present, each name stands for one item (parameter or result) of the specified type; if absent, each type stands for one item of that type. Parameter and result lists are always parenthesized except that if there is exactly -one unnamed result that is not a function type it may written as an unparenthesized type. +one unnamed result it may written as an unparenthesized type.

For the last parameter only, instead of a type one may write @@ -919,15 +919,15 @@ type.

-func ()
-func (x int)
-func () int
-func (string, float, ...)
-func (a, b int, z float) bool
-func (a, b int, z float) (bool)
-func (a, b int, z float, opt ...) (success bool)
-func (int, int, float) (float, *[]int)
-func (n int) (func (p* T))
+func()
+func(x int)
+func() int
+func(string, float, ...)
+func(a, b int, z float) bool
+func(a, b int, z float) (bool)
+func(a, b int, z float, opt ...) (success bool)
+func(int, int, float) (float, *[]int)
+func(n int) func(p *T)
 
@@ -1210,8 +1210,8 @@ type ( T1 []string T2 struct { a, b int } T3 struct { a, c int } - T4 func (int, float) *T0 - T5 func (x int, y float) *[]string + T4 func(int, float) *T0 + T5 func(x int, y float) *[]string ) @@ -1223,7 +1223,7 @@ these types are identical: T0 and T0 []int and []int struct { a, b *T5 } and struct { a, b *T5 } -func (x int, y float) *[]string and func (int, float) (result *[]string) +func(x int, y float) *[]string and func(int, float) (result *[]string)

@@ -1239,7 +1239,7 @@ These types are compatible: T0 and T0 T0 and []string T3 and struct { a int; c int } -T4 and func (x int, y float) *[]string +T4 and func(x int, y float) *[]string

@@ -2128,7 +2128,7 @@ FunctionLit = FunctionType Body .

-func (a, b int, z float) bool { return a*b < int(z) }
+func(a, b int, z float) bool { return a*b < int(z) }
 

@@ -3049,7 +3049,7 @@ with an explicit receiver as its first argument; it has signature

-func (tv T, a int) int
+func(tv T, a int) int
 

@@ -3076,7 +3076,7 @@ yields a function value representing Mp with signature

-func (tp *T, f float) float
+func(tp *T, f float) float
 

@@ -3093,7 +3093,7 @@ yields a function value representing Mv with signature

-func (tv *T, a int) int
+func(tv *T, a int) int