1
0
mirror of https://github.com/golang/go synced 2024-11-26 07:17:59 -07:00
Commit Graph

872 Commits

Author SHA1 Message Date
Russ Cox
02d184b303 remove support for *T as an implicit declaration of T
R=ken
OCL=16651
CL=16653
2008-10-07 13:00:10 -07:00
Russ Cox
e6cd1e445b remove uses of *T as an implicit forward declaration of T
R=gri,r
OCL=16648
CL=16652
2008-10-07 12:59:54 -07:00
Russ Cox
96da920f1a fix bug:
type T struct
	export type T struct { a int }

was not exporting T

R=ken
OCL=16650
CL=16650
2008-10-07 12:42:57 -07:00
Russ Cox
eb452f4b6e test that mutually recursive interfaces compile
R=r
DELTA=18  (18 added, 0 deleted, 0 changed)
OCL=16639
CL=16647
2008-10-07 12:36:39 -07:00
Russ Cox
d364d28142 implement new semicolon rules:
*  1. all statements and declarations are terminated by semicolons
 *  2. semicolons can be omitted at top level.
 *  3. semicolons can be omitted before and after the closing ) or }
 *	on a list of statements or declarations.

now that semicolons are in, uncomment forward declaration
	of interfaces

R=ken
DELTA=285  (124 added, 114 deleted, 47 changed)
OCL=16638
CL=16646
2008-10-07 12:36:30 -07:00
Russ Cox
983f06bdb6 update code to follow new semicolon rules:
*  1. all statements and declarations are terminated by semicolons
 *  2. semicolons can be omitted at top level.
 *  3. semicolons can be omitted before and after the closing ) or }
 *	on a list of statements or declarations.

/home/rsc/bin/addsemi and then diff+tweak.

R=r,gri
OCL=16620
CL=16643
2008-10-07 12:31:31 -07:00
Rob Pike
7ee60b174d sys.stringtorune doesn't need a length parameter.
R=rsc
DELTA=7  (0 added, 0 deleted, 7 changed)
OCL=16600
CL=16630
2008-10-07 10:03:34 -07:00
Russ Cox
74e2e087e2 change type names to go live at the name, so that
type T struct {
		next *T
	}

and

	type T *struct {
		next T
	}

are valid without needing forward declarations.

add "type T struct" syntax for forward struct declarations.

add "type T interface" syntax, but commented out
	(need to fix semicolons first)

R=ken
DELTA=452  (259 added, 115 deleted, 78 changed)
OCL=16580
CL=16584
2008-10-06 16:44:17 -07:00
Rob Pike
717de79976 change in spec results in non-error
R=gri
DELTA=4  (0 added, 3 deleted, 1 changed)
OCL=16565
CL=16579
2008-10-06 16:27:14 -07:00
Russ Cox
1b257b2bb3 silence gcc warning - initialize two variables
R=ken
OCL=16550
CL=16550
2008-10-06 13:52:23 -07:00
Ian Lance Taylor
be0c25ee93 Change old-style export declaration to new style export of
type definition.

R=r
DELTA=3  (0 added, 2 deleted, 1 changed)
OCL=16537
CL=16545
2008-10-06 13:12:03 -07:00
Rob Pike
98c208ee1d bug026 and bug060 are fixed. update.
R=rsc
DELTA=87  (37 added, 50 deleted, 0 changed)
OCL=16498
CL=16507
2008-10-05 08:34:48 -07:00
Russ Cox
f464beb61d fix method use bug in powser1.
R=r
DELTA=7  (2 added, 2 deleted, 3 changed)
OCL=16495
CL=16499
2008-10-04 22:11:26 -07:00
Ken Thompson
6499fbe734 bug060
R=r
OCL=16497
CL=16497
2008-10-04 17:11:01 -07:00
Ken Thompson
f25843e65e bug 026
R=r
OCL=16494
CL=16494
2008-10-04 15:17:49 -07:00
Russ Cox
c8b9970e16 change *a1++; to plain a1++
R=ken
DELTA=2  (0 added, 0 deleted, 2 changed)
OCL=16489
CL=16489
2008-10-04 02:54:19 -07:00
Russ Cox
2e1bb4a4cf add method test & fix method name bugs
R=ken,r
DELTA=86  (72 added, 9 deleted, 5 changed)
OCL=16488
CL=16488
2008-10-04 02:51:03 -07:00
Russ Cox
7766b12ead const bug, name bug - working on both
R=r
DELTA=43  (43 added, 0 deleted, 0 changed)
OCL=16468
CL=16475
2008-10-03 17:06:24 -07:00
Russ Cox
45f4e38506 silence gcc warnings
R=ken
OCL=16449
CL=16466
2008-10-03 16:23:02 -07:00
Russ Cox
b8babed7c2 new import/export format
package flag
	export type flag.Flag struct { name flag.string; usage flag.string; \
		value flag.Value; next *flag.Flag }
	type flag.string string
	type flag.Value interface { AsBool () (? *flag.BoolValue); \
		AsInt () (? *flag.IntValue); AsString () (? *flag.StringValue); \
		IsBool () (? flag.bool); IsInt () (? flag.bool); IsString () (? flag.bool); \
		Str () (? flag.string); ValidValue (str flag.string) (? flag.bool) }
	type flag.BoolValue struct { val flag.bool; p *flag.bool }
	type flag.IntValue struct { val flag.int64; p *flag.int64 }
	type flag.StringValue struct { val flag.string; p *flag.string }
	type flag.bool bool
	func (e *flag.StringValue) AsBool () (? *flag.BoolValue)
	func (e *flag.StringValue) AsInt () (? *flag.IntValue)
	...

the \ continuations are for this message, not real.

changed delimiter for import from (( )) to $$ $$.

replaced mksys.bash with mksys.c

changed sys.go to use leading export,
	fake package name is now SYS not foop

don't always require ; on forward func decls

R=ken,r
DELTA=1827  (446 added, 1083 deleted, 298 changed)
OCL=16433
CL=16463
2008-10-03 16:15:55 -07:00
Ken Thompson
8877d27b40 interfaces of all types
R=r
OCL=16462
CL=16462
2008-10-03 16:12:21 -07:00
Rob Pike
bbb908fef0 allow prof to launch the process
R=rsc
DELTA=32  (30 added, 0 deleted, 2 changed)
OCL=16440
CL=16445
2008-10-03 14:49:10 -07:00
Robert Griesemer
347cf67a85 - precise scope rules
- clarified naming of invisible fields
- fixed syntax of expression statements

R=r
DELTA=70  (33 added, 4 deleted, 33 changed)
OCL=16424
CL=16439
2008-10-03 14:04:28 -07:00
Rob Pike
569a107e0d Revised wording about sends.
Evaluation is done before communication starts.

R=gri
DELTA=19  (4 added, 1 deleted, 14 changed)
OCL=16357
CL=16416
2008-10-03 11:18:45 -07:00
Ken Thompson
ed139c1e37 more on arbitrary receiver types
this CL passes the tests, but should
be considered unstable

R=r
OCL=16390
CL=16390
2008-10-02 20:51:10 -07:00
Ken Thompson
53a22770a7 names now println/panicln
bug fix in named-return

R=r
OCL=16377
CL=16377
2008-10-02 15:37:15 -07:00
Ken Thompson
f21e731c71 added printn and panicn
prints that insert spaces and new line

R=r
OCL=16370
CL=16370
2008-10-02 14:38:07 -07:00
Russ Cox
0216273c7a add values to some "return" statements.
delete unused variables

R=ken
OCL=16360
CL=16360
2008-10-02 11:34:04 -07:00
Rob Pike
cd368a259e add a little text clarifying the behavior of 'select'
R=gri
DELTA=18  (8 added, 2 deleted, 8 changed)
OCL=16356
CL=16356
2008-10-02 10:37:12 -07:00
Ken Thompson
d015f896bb clear output parameters
R=r
OCL=16345
CL=16345
2008-10-01 20:00:58 -07:00
Robert Griesemer
5e92fb20b8 Clarifications re: anonymous fields in structs:
- typename cannot refer to interface types
- clarified syntax
- added TODO re: type name issue with qualified identifiers

Changed/fixed order of operators/keywords.

R=r
DELTA=10  (3 added, 0 deleted, 7 changed)
OCL=16337
CL=16339
2008-10-01 17:21:19 -07:00
Ian Lance Taylor
8d0ed065dc With the cleanup of method types, this test case is now
invalid.  The receiver type is not permitted to be a pointer
type.  Since 6g currently accepts it, this moves the test case
back to the bugs directory.

R=gri
DELTA=22  (11 added, 11 deleted, 0 changed)
OCL=16284
CL=16336
2008-10-01 17:01:42 -07:00
Robert Griesemer
4fb6064c11 - fixed Makefile, added more tests
- fixed parsing of parameter lists (sigh)

R=r
DELTA=48  (22 added, 7 deleted, 19 changed)
OCL=16319
CL=16321
2008-10-01 14:31:44 -07:00
Ken Thompson
970d6a14c4 initialization of
var a,b int;

R=r
OCL=16318
CL=16318
2008-10-01 14:16:57 -07:00
Russ Cox
abb95518ab add a script to build *everything*
R=r
DELTA=41  (41 added, 0 deleted, 0 changed)
OCL=16290
CL=16293
2008-10-01 11:06:13 -07:00
Robert Griesemer
a6400dd448 more fine-tuning of ;'s
R=r
OCL=16274
CL=16274
2008-09-30 19:31:27 -07:00
Robert Griesemer
6349d38ebc - fixed semicolon handling in pretty printer
- some scanner cleanup
- new pretty-printed code can be compiled again (for some files)

R=r
OCL=16272
CL=16272
2008-09-30 18:50:29 -07:00
Russ Cox
77a911bcc1 update golden.out
R=r
OCL=16250
CL=16250
2008-09-30 15:45:49 -07:00
Russ Cox
8dc08788ef remove ( ) around mismatch type prints,
so that they don't look like functions.

R=ken
OCL=16244
CL=16244
2008-09-30 15:38:41 -07:00
Russ Cox
387c1bc31e pretty types; use 6g -t to disable
R=ken
OCL=16240
CL=16242
2008-09-30 15:35:40 -07:00
Russ Cox
5ed04d71fb tests of new func arg code
R=r
DELTA=41  (41 added, 0 deleted, 0 changed)
OCL=16212
CL=16223
2008-09-30 14:08:43 -07:00
Russ Cox
a4f15640aa i can import "net" in package net
and still have a variable named "net"

R=r
DELTA=18  (0 added, 0 deleted, 18 changed)
OCL=16220
CL=16222
2008-09-30 14:03:13 -07:00
Russ Cox
1f1ae404f8 for loops in hashmap.
a few missing FLUSH.

R=ken
OCL=16221
CL=16221
2008-09-30 14:02:53 -07:00
Russ Cox
a05c59fe91 cleanup export
R=ken
OCL=16219
CL=16219
2008-09-30 13:52:44 -07:00
Russ Cox
b033c581db fix export bug for /usr/r/rpc
R=ken
OCL=16218
CL=16218
2008-09-30 13:49:31 -07:00
Rob Pike
ca6d4238a4 update golden for new error messages
R=rsc
OCL=16213
CL=16213
2008-09-30 13:07:38 -07:00
Robert Griesemer
52a548034e - exceptional conditions during expression evaluation are undefined
- "nil" for interfaces, comparison against "nil"

R=r
DELTA=38  (24 added, 5 deleted, 9 changed)
OCL=16207
CL=16211
2008-09-30 13:02:50 -07:00
Russ Cox
4d571c9093 fix up arg list parsing to handle any names:
type t1 int;
type t2 int;
type t3 int;
func f1(t1, t2, t3);
func f2(t1, t2, t3 bool);
func f3(t1, t2, x t3);
func f4(*t2, x t3);	// error: cannot mix
func f5(t1, *t3);
func (x *t1) f6(y *[]t2) (t1, *t3);
func f7() (int, *string);
func f8(t1, *t2, x t3);	// error: cannot mix
func f9() (x int, *string);
func f10(*t2, t3);

R=ken
OCL=16202
CL=16210
2008-09-30 12:53:11 -07:00
Rob Pike
fa2b4cbf44 104, 107, 108: they are known to fail, so mark them appropriately.
update golden
add the "goroutines" test

R=iant
DELTA=74  (36 added, 23 deleted, 15 changed)
OCL=16194
CL=16206
2008-09-30 12:31:47 -07:00
Robert Griesemer
c59b2a3db1 - type of array literals is always fixed array
- changed terminology from "embedded type" to "anonymous field"

R=r
DELTA=38  (7 added, 2 deleted, 29 changed)
OCL=16193
CL=16196
2008-09-30 10:57:59 -07:00