1
0
mirror of https://github.com/golang/go synced 2024-11-19 10:34:46 -07:00
Commit Graph

224 Commits

Author SHA1 Message Date
Robert Griesemer
11684680fa go spec: append is now implemented
R=r, r2
CC=golang-dev
https://golang.org/cl/2717043
2010-10-29 11:44:48 -07:00
Robert Griesemer
904adfdc46 go spec: clarify return type of append, argument type for ...T parameters
R=iant, ken2, r, rsc
CC=golang-dev
https://golang.org/cl/2774041
2010-10-27 10:44:31 -07:00
Robert Griesemer
a8abb64a71 go spec: note re: append() not being implemented yet
R=rsc
CC=golang-dev
https://golang.org/cl/2761041
2010-10-26 20:30:35 -07:00
Robert Griesemer
07e983a965 go spec: append built-in
R=iant, ken2, r, rsc
CC=golang-dev
https://golang.org/cl/2627043
2010-10-25 16:50:31 -07:00
Robert Griesemer
425bbadd3c go_spec: allow copy() to copy bytes from a string into a []byte
(language change as discussed a while ago)

R=iant, ken2, r, rsc
CC=golang-dev
https://golang.org/cl/2716041
2010-10-25 16:41:06 -07:00
Robert Griesemer
a12141e5f4 go spec: relaxed syntax for array, slice, and map composite literals
For elements which are themselves composite literals, the type may
be omitted if it is identical to the element type of the containing
composite literal.

R=r, rsc, iant, ken2
CC=golang-dev
https://golang.org/cl/2661041
2010-10-22 08:58:52 -07:00
Russ Cox
bee2d5b0ad gc, spec, tests: no auto-indirect of pointer to interface value
Implies no embedding of pointer to interface value either.

R=gri, iant, ken2, r, r2
CC=golang-dev
https://golang.org/cl/2289041
2010-09-30 14:59:41 -04:00
Robert Griesemer
5474e166bc go spec: clarifications for range clause
R=iant, r, rsc, rog
CC=golang-dev
https://golang.org/cl/2226047
2010-09-28 14:44:19 -07:00
Russ Cox
00ffd59c1a gc: fix reflect table method receiver
Fixes #451.
Fixes #770.

R=ken2
CC=golang-dev
https://golang.org/cl/2207045
2010-09-28 13:43:50 -04:00
Robert Griesemer
0e66a13d10 go_spec: EOF may insert a semicolon
R=rsc, r, iant
CC=golang-dev
https://golang.org/cl/2266043
2010-09-27 18:59:11 -07:00
Robert Griesemer
ac771a8a47 go spec: ... changes
Also: Fixed a bug in the BuiltinCall production.

R=iant, r, rsc
CC=golang-dev
https://golang.org/cl/2278041
2010-09-24 14:08:28 -07:00
Joe Poirier
d4c8a54579 doc: fix typo in go_spec.html
R=rsc
CC=golang-dev
https://golang.org/cl/2250041
2010-09-20 10:51:05 -07:00
Robert Griesemer
9e5bf27acb go_spec: consistent use of 'low', 'high' in slices section
Also: Added examples for slices with omitted index expressions.

R=r, rsc
CC=golang-dev
https://golang.org/cl/2106047
2010-09-07 16:32:35 -07:00
Scott Lawrence
0c1695b42e spec: Allow omission of low slice bound
See also https://golang.org/cl/1957045/

R=gri, rsc, r
CC=golang-dev
https://golang.org/cl/2163042
2010-09-07 14:30:17 -07:00
Robert Griesemer
947e2180e9 go_spec: fix typo (pointed out by Hiroshi Iwatani)
R=iant
CC=golang-dev
https://golang.org/cl/2128045
2010-09-07 11:14:36 -07:00
Robert Griesemer
c423e95da6 go spec clarification: arrays must be addressable to be sliceable
R=rsc
CC=golang-dev, r
https://golang.org/cl/2141041
2010-09-02 10:16:31 -07:00
Rob Pike
cb2730e60c spec: delete spurious space (missed fix from previous review)
No semantic change.

R=rsc
CC=golang-dev
https://golang.org/cl/2099041
2010-09-01 10:48:45 +10:00
Rob Pike
68f1609eb4 spec: fix a couple of tiny glitches
R=gri, rsc
CC=golang-dev
https://golang.org/cl/2078041
2010-09-01 10:40:50 +10:00
Ian Lance Taylor
659966a988 doc: Update gccgo information for recent changes.
R=r
CC=golang-dev
https://golang.org/cl/1941052
2010-08-23 17:50:30 -07:00
Rob Pike
132d2f11a8 spec: delete erroneous word 'pointer' in specification of select.
R=gri
CC=golang-dev
https://golang.org/cl/1960044
2010-08-16 06:42:41 +10:00
Stephen Ma
0d40e40f5e spec: trivial syntax fix
R=golang-dev
CC=golang-dev
https://golang.org/cl/1982042
2010-08-14 10:27:24 +10:00
Robert Griesemer
07cc6440dc go_spec: don't allow parens around the literal type of composite literals
Background: The current spec is imprecise with respect to the parsing ambiguity
for composite literals: It says that the ambiguity arises when the TypeName form
of the LiteralType is used. The following code:

    if (B) {} ...

is not using the TypeName form (but the parenthesized TypeName form) and thus
could be interpreted as:

    if ((B){}) ...

instead of

    if B {} ...

Both compilers and gofmt choose the latter interpretation. One could fix the
spec by making the clause regarding the parsing ambiguity more precise ("...using
the _possibly parenthesized_ TypeName form of the LiteralType..."). The alternative
(chosen here) is to simply disallow parenthesized literal types. Except for a single
test case (test/parentype.go) there appears to be no Go code under $GOROOT containing
parenthesized literal types. Furthermore, parentheses are never needed around a
literal type for correct parsing.

R=golang-dev
CC=golang-dev
https://golang.org/cl/1913041
2010-07-29 18:13:41 -07:00
Andrew Gerrand
88fc337fa2 spec: add recover to predeclared identifiers list
R=gri
CC=golang-dev
https://golang.org/cl/1894043
2010-07-27 15:03:30 +10:00
Robert Griesemer
dc60c5a7ec go spec: clarification of channel close()
R=r, rsc
CC=golang-dev
https://golang.org/cl/1766042
2010-07-14 16:09:22 -07:00
Rob Pike
041d11623f Go specification: Lock down some details about channels and select:
- nil channel in regular send or receive panics
- empty select blocks forever

R=rsc, gri, iant, ken2
CC=golang-dev
https://golang.org/cl/1825043
2010-07-13 16:23:54 -07:00
Robert Griesemer
0c2e6b3637 go spec: specify len/cap for nil slices, maps, and channels
Fixes #891.

R=r, rsc
CC=golang-dev
https://golang.org/cl/1760043
2010-07-13 11:54:57 -07:00
Robert Griesemer
73ca127e67 go/spec: fix typo
R=r
CC=golang-dev
https://golang.org/cl/1790041
2010-07-09 13:02:54 -07:00
Russ Cox
f4429181df spec: restrict when len(x) is constant
R=gri, iant, ken2, r
CC=golang-dev
https://golang.org/cl/1687047
2010-07-01 17:49:47 -07:00
Russ Cox
e495351ff7 spec: struct tags must be identical for types to be identical
We didn't mention this explicitly during our discussions,
but I think it fits the "identical types are spelled identically"
rule that we used.

R=gri, iant, ken2, r, rsc1
CC=golang-dev
https://golang.org/cl/1698043
2010-06-21 12:42:33 -07:00
Russ Cox
9562592342 spec: remove ... (keeping ...T)
R=gri, iant, ken2, r, r2
CC=golang-dev
https://golang.org/cl/1632041
2010-06-12 11:37:13 -07:00
Rob Pike
db8c2b1803 spec: clarify that result parameters are always zeroed before the function executes.
R=golang-dev
CC=golang-dev
https://golang.org/cl/1641043
2010-06-11 21:30:03 -07:00
Robert Griesemer
440cc95470 go spec: rename "assignment compatible" -> "assignable"
R=r, rsc
CC=golang-dev
https://golang.org/cl/1590041
2010-06-07 17:40:21 -07:00
Robert Griesemer
7bc03718f4 go spec: clean-up and consolidation of spec with implementation
Specifically:
- introduced notion of "underlying type"
- removed notion of type compatibility
- consolidated rules about assignment compatibility in
  assignment compatibility section
- be consistent with specyfing that nil is the value
  for uninitialized variables that can be nil (this
  was not specified clearly for pointers, functions, interfaces)
- added/fixed various related links throughout
- clarify language on conversions

R=rsc, r, iant, ken2
CC=golang-dev
https://golang.org/cl/1536041
2010-06-07 15:49:39 -07:00
Robert Griesemer
1d282a8eb2 go spec: Base comparison compatibility on assignment compatibility.
Specifically:
- Simplified definition of comparison compatibility and folded into
  section on comparison operators since it's only used there.

This is a small language change/cleanup. As a consequence:
- An interface value may now be compared against a non-interface value.
- Channels with opposite directions cannot be compared directly anymore
  (per discussion with rsc).

R=rsc, r, iant, ken2
CC=golang-dev
https://golang.org/cl/1462041
2010-06-03 16:55:50 -07:00
Robert Griesemer
63f014910d go spec: change def. of "type compatibility" to be non-recursive
and adjust conversion rules.

Also:
- clarification of type identity (no language change)
- adjust special rules for channel assignment/comparison to
  require identical element types (in correspondence to non-
  recursiveness of type compatibility)

R=rsc, iant, ken2, r
CC=golang-dev
https://golang.org/cl/1376042
2010-05-28 14:17:30 -07:00
Robert Griesemer
31f2503cde go spec: Disallow &a notation to obtain a slice
from an array; one needs to write a[0:] instead.

R=rsc, r, iant, ken2
CC=golang-dev
https://golang.org/cl/1365041
2010-05-27 17:23:25 -07:00
Evan Shaw
67d30bb696 spec: Fix link to fallthrough statements
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/1303041
2010-05-25 18:24:07 -07:00
Robert Griesemer
c7e03a32b3 go spec: minor fix, to match conversion rules 4 and 5
R=rsc
CC=golang-dev
https://golang.org/cl/1270042
2010-05-24 21:25:01 -07:00
Robert Griesemer
934a520d75 go spec: fix and clarify syntax of conversions
Fixes #803.

R=rsc, r, iant, ken2
CC=golang-dev
https://golang.org/cl/1281041
2010-05-24 14:58:26 -07:00
Russ Cox
e7561de09a spec: index of non-addressable array is not addressable
Motivated by:

func f() []int
func g() [10]int

f()[1] = 1  // ok
g()[1] = 1 // ERROR

R=gri
CC=golang-dev
https://golang.org/cl/1278041
2010-05-24 14:31:43 -07:00
Evan Shaw
cb4e9f8508 spec: Fix a code tag
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/1266042
2010-05-23 11:21:47 -07:00
Robert Griesemer
3af4803704 go spec: added imaginary literal to semicolon rules (was missing)
- also added links to the respective sections
- reformatted section for better (source html) readability
- added missing closing </li>'s in many places

R=r
CC=golang-dev
https://golang.org/cl/1220041
2010-05-14 13:11:48 -07:00
Robert Griesemer
56ca697269 go spec: simplify section on channel types
R=rsc, iant, r
CC=golang-dev
https://golang.org/cl/1171041
2010-05-07 18:22:40 -07:00
Robert Griesemer
df674ffb43 go spec: clarification of make arguments,
specification of runtime exceptions for
make and division by zero

R=r, rsc, ken2, iant
CC=golang-dev
https://golang.org/cl/1081041
2010-05-04 17:31:40 -07:00
Robert Griesemer
39f009cb8e go spec: fix iota description
R=r, rsc
CC=golang-dev
https://golang.org/cl/946046
2010-04-29 10:57:27 -07:00
Rob Pike
de92199648 spec: clarify "continue" with label. the text was obvious in intent but
inaccurate in meaning.

R=gri
CC=golang-dev
https://golang.org/cl/964045
2010-04-28 13:18:40 -07:00
Robert Griesemer
f5b3c14f31 go spec: fix wrong comment
Fixes #743.

R=r, rsc
CC=golang-dev
https://golang.org/cl/944044
2010-04-27 17:52:44 -07:00
Evan Shaw
21110c799d spec: Fix run-time panic header id
Everything was linking to "Run_time_panics", but the id was "Run_time_errors".

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/961042
2010-04-22 10:14:53 -07:00
Russ Cox
6aad41919b go_spec updates
R=r, iant
CC=golang-dev
https://golang.org/cl/921041
2010-04-13 20:55:57 -07:00
Joe Poirier
d37e87c1b2 gp_spec typo fix: code example in the "Handling panics" section
R=rsc, adg
CC=golang-dev
https://golang.org/cl/881047
2010-04-08 10:25:57 +10:00