1
0
mirror of https://github.com/golang/go synced 2024-11-24 22:47:58 -07:00

clarify pointer forward decls per ian's suggestion

R=r
DELTA=13  (3 added, 7 deleted, 3 changed)
OCL=14406
CL=14406
This commit is contained in:
Robert Griesemer 2008-08-21 17:18:01 -07:00
parent 2dabb6525a
commit 2d697d67dc

View File

@ -786,6 +786,7 @@ particular to dereference a channel pointer.
var ch *chan int;
ch = new(chan int); // new returns type *chan int
Function types
----
@ -990,11 +991,13 @@ The following scope rules apply:
1. No identifier may be declared twice in a single scope.
2. A language entity may only be referred to within its scope.
3. Field and method identifiers may be used only to select elements
from the corresponding types. In effect, the field selector operator
from the corresponding types, and only after those types are fully
declared. In effect, the field selector operator
'.' temporarily re-opens the scope of such identifiers (see Expressions).
4. Forward declaration: A type of the form "*T" may be mentioned at a point
where "T" is not yet declared. The declaration of "T" must follow in the
same package and "T" must be visible at the end of the block containing "*T".
where "T" is not yet declared. The full declaration of "T" must be within a
block containing the forward declaration, and the forward declaration
refers to the innermost such full declaration.
Global declarations optionally may be marked for export with the reserved word
"export". Local declarations can never be exported.
@ -1016,10 +1019,6 @@ TODO: Eventually we need to be able to restrict visibility of fields and methods
Export should be identifier-based: an identifier is either exported or not, and thus
visible or not in importing package.
[OLD
Declaration = ConstDecl | TypeDecl | VarDecl | FunctionDecl | ExportDecl .
END]
Const declarations
----
@ -1738,9 +1737,6 @@ if omitted, the first two examples above can be abbreviated:
)
TODO: should iota work in var, type, func decls too?
Statements
----