1
0
mirror of https://github.com/golang/go synced 2024-11-21 18:24:46 -07:00

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
This commit is contained in:
Russ Cox 2010-01-26 10:25:56 -08:00
parent f4dfbd1cf0
commit 46871692c2

View File

@ -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.
</p>
<p>
For the last parameter only, instead of a type one may write
@ -919,15 +919,15 @@ type.
</p>
<pre>
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)
</pre>
@ -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
)
</pre>
@ -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)
</pre>
<p>
@ -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
</pre>
<p>
@ -2128,7 +2128,7 @@ FunctionLit = FunctionType Body .
</pre>
<pre>
func (a, b int, z float) bool { return a*b &lt; int(z) }
func(a, b int, z float) bool { return a*b &lt; int(z) }
</pre>
<p>
@ -3049,7 +3049,7 @@ with an explicit receiver as its first argument; it has signature
</p>
<pre>
func (tv T, a int) int
func(tv T, a int) int
</pre>
<p>
@ -3076,7 +3076,7 @@ yields a function value representing <code>Mp</code> with signature
</p>
<pre>
func (tp *T, f float) float
func(tp *T, f float) float
</pre>
<p>
@ -3093,7 +3093,7 @@ yields a function value representing <code>Mv</code> with signature
</p>
<pre>
func (tv *T, a int) int
func(tv *T, a int) int
</pre>
<p>