From: Robert Griesemer Date: Fri, 22 Aug 2008 00:18:01 +0000 (-0700) Subject: clarify pointer forward decls per ian's suggestion X-Git-Tag: weekly.2009-11-06~3309 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2d697d67dc22fc739d734e04d818530e03eee15d;p=gostls13.git clarify pointer forward decls per ian's suggestion R=r DELTA=13 (3 added, 7 deleted, 3 changed) OCL=14406 CL=14406 --- diff --git a/doc/go_lang.txt b/doc/go_lang.txt index 0a7363d8f0..8be93c9f4b 100644 --- a/doc/go_lang.txt +++ b/doc/go_lang.txt @@ -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 ----