1
0
mirror of https://github.com/golang/go synced 2024-10-03 14:31:22 -06:00
Commit Graph

237 Commits

Author SHA1 Message Date
Ken Thompson
d27e9f528d bug086
R=r
OCL=26090
CL=26090
2009-03-10 19:16:31 -07:00
Robert Griesemer
b2e91a9a29 constant conversion of int (non-ideal) constant doesn't work
R=rsc
DELTA=20  (20 added, 0 deleted, 0 changed)
OCL=26054
CL=26062
2009-03-10 16:39:23 -07:00
Russ Cox
63985b489b bug085 bug129
R=ken
OCL=25787
CL=25791
2009-03-05 15:57:03 -08:00
Russ Cox
be2edb5761 Automated g4 rollback of changelist 25024,
plus significant hand editing.

Back to T{x} for composite literals.

R=r
OCL=25612
CL=25632
2009-03-03 08:39:12 -08:00
Rob Pike
88b1f8594a bug130 is fixed
R=ken
OCL=25448
CL=25448
2009-02-25 16:31:42 -08:00
Russ Cox
d3d0c256be bug123
R=ken
OCL=25075
CL=25075
2009-02-16 17:44:05 -08:00
Russ Cox
9f8f2e6130 convert composite literals from { } to ( ).
only non-trivial changes are in
	convlit1.go
	golden.out

R=gri
OCL=25019
CL=25024
2009-02-13 14:48:32 -08:00
Robert Griesemer
920ab67b4c label declarations not handled properly
R=rsc
DELTA=27  (27 added, 0 deleted, 0 changed)
OCL=25015
CL=25015
2009-02-13 13:42:43 -08:00
Robert Griesemer
a85e06f302 bug: empty statement not properly recognized in conjunction w/ labels
R=r
DELTA=14  (14 added, 0 deleted, 0 changed)
OCL=24610
CL=24610
2009-02-06 16:45:37 -08:00
Russ Cox
b0009bef20 bug064
make f(g()) work when g returns multiple
args with names different than f expects.

func swap(a, b int) (c, d int) {
	return b, a
}

swap(swap(1,2))

R=ken
OCL=24474
CL=24476
2009-02-05 15:22:49 -08:00
Rob Pike
f9cc900ae8 bugs cleanup, including deleting one near-identical duplicate bug
R=rsc
DELTA=52  (15 added, 37 deleted, 0 changed)
OCL=24274
CL=24274
2009-02-03 16:59:26 -08:00
Russ Cox
4cf7711568 update go code tree to new func rules.
R=r
DELTA=367  (111 added, 59 deleted, 197 changed)
OCL=23957
CL=23960
2009-01-30 14:39:31 -08:00
Rob Pike
712522a6d8 bug135 is fixed
TBR=ken
OCL=23650
CL=23650
2009-01-27 19:30:44 -08:00
Rob Pike
fa615a3b30 f, ok := i.(Foo) does not compile if i already is equivalent to Foo
R=rsc
DELTA=18  (18 added, 0 deleted, 0 changed)
OCL=23544
CL=23547
2009-01-26 18:35:18 -08:00
Russ Cox
4efad58d0a bug133
R=ken
OCL=23528
CL=23528
2009-01-26 16:57:24 -08:00
Ian Lance Taylor
2a4f4dd842 Add a test for a case where 6g thinks that a field is visible
when it should not be.  I couldn't get this any simpler; the
error seems to have to do with the order of the imports in
bug2.go.

R=rsc
DELTA=26  (26 added, 0 deleted, 0 changed)
OCL=23450
CL=23482
2009-01-26 09:59:59 -08:00
Robert Griesemer
e1e158a90c - added comment with various viewpoints so we have whole story
once we close this

R=r
OCL=23239
CL=23239
2009-01-21 14:57:47 -08:00
Robert Griesemer
41644d7138 - duplicate struct field not diagnosed
R=rsc
DELTA=16  (16 added, 0 deleted, 0 changed)
OCL=23224
CL=23229
2009-01-21 14:11:54 -08:00
Russ Cox
839a68469b delete export
TBR=r
OCL=23121
CL=23127
2009-01-20 14:40:40 -08:00
Russ Cox
f48cbfdf56 convert tests; nothing interesting.
R=r
OCL=23012
CL=23014
2009-01-16 16:12:14 -08:00
Russ Cox
360962420c casify, cleanup sys
R=r
OCL=22978
CL=22984
2009-01-16 14:58:14 -08:00
Ian Lance Taylor
c0f6144f1b Test that a const with an explicit type is not treated as
having an abstract type.

R=gri
DELTA=11  (11 added, 0 deleted, 0 changed)
OCL=22829
CL=22832
2009-01-15 11:23:35 -08:00
Russ Cox
51c3ac7e3f bug046 and bug080 are fixed
R=r
DELTA=72  (30 added, 42 deleted, 0 changed)
OCL=22373
CL=22378
2009-01-08 20:06:37 -08:00
Russ Cox
e512481b17 second pass on interface fixes and tests.
R=ken
OCL=22370
CL=22372
2009-01-08 18:06:06 -08:00
Russ Cox
5564504507 new new & make
R=r
OCL=22166
CL=22166
2009-01-06 15:19:02 -08:00
Rob Pike
315033368e bug020 is fixed
R=rsc
DELTA=40  (18 added, 22 deleted, 0 changed)
OCL=22134
CL=22139
2009-01-06 13:44:44 -08:00
Ian Lance Taylor
3f69acfb0c Test for a go statement which calls a method on an interface.
R=ken
DELTA=20  (20 added, 0 deleted, 0 changed)
OCL=21889
CL=21929
2008-12-30 15:03:46 -08:00
Russ Cox
08ca30bbfa change *map to map; *chan to chan; new(T) to new(*T)
fix bugs left over from *[] to [] conversion.

TBR=r
OCL=21576
CL=21581
2008-12-19 03:05:37 -08:00
Rob Pike
0816debdfc update tests - 119 is fixed
R=gri
DELTA=62  (28 added, 34 deleted, 0 changed)
OCL=21269
CL=21271
2008-12-16 10:31:08 -08:00
Rob Pike
58a320f926 test update
R=rsc
DELTA=16  (5 added, 10 deleted, 1 changed)
OCL=21085
CL=21087
2008-12-12 13:29:25 -08:00
Russ Cox
889d9b6ffd bug129
package foo
import "syscall"
func f() {
	syscall := 1
}

R=ken
OCL=21036
CL=21036
2008-12-11 18:19:07 -08:00
Rob Pike
77fbc310e4 another bug cleanup.
R=rsc
DELTA=117  (54 added, 62 deleted, 1 changed)
OCL=20924
CL=20927
2008-12-10 14:59:43 -08:00
Rob Pike
fbfc9dddb2 update tests: nil is no longer integer-compatible
R=rsc
DELTA=56  (17 added, 32 deleted, 7 changed)
OCL=20876
CL=20916
2008-12-10 13:55:47 -08:00
Ian Lance Taylor
48e5110151 Tweak comments so that this test passes with gccgo.
bug126.go:7:7: error: redefinition of 'none'
bug126.go:6:7: note: previous definition of 'none' was here

R=gri
DELTA=3  (1 added, 0 deleted, 2 changed)
OCL=20563
CL=20723
2008-12-08 11:31:55 -08:00
Ian Lance Taylor
cc352e5c1c The DejaGNU testsuite harness used by the gccgo testsuite is
broken if you give it something which matches everything--the
.* swallows all the error messages.  Recognize some reasonable
error text directly.

R=rsc
DELTA=2  (0 added, 0 deleted, 2 changed)
OCL=20564
CL=20595
2008-12-05 10:20:34 -08:00
Rob Pike
94a66489ed bug128 is fixed
R=rsc
DELTA=43  (19 added, 24 deleted, 0 changed)
OCL=20551
CL=20551
2008-12-04 20:51:47 -08:00
Robert Griesemer
4d76e8e142 - bug: empty switches don't compile
R=rsc
DELTA=32  (28 added, 3 deleted, 1 changed)
OCL=20301
CL=20340
2008-12-03 10:41:43 -08:00
Russ Cox
1e1a3c5054 6g gives no error on "0 != nil"
R=ken
OCL=20289
CL=20289
2008-12-02 16:35:00 -08:00
Robert Griesemer
b0192ea1a5 bug: constants should not be redeclarable
R=rsc
DELTA=9  (9 added, 0 deleted, 0 changed)
OCL=20187
CL=20187
2008-12-01 17:27:57 -08:00
Russ Cox
6cc001c312 return *os.Error instead of bool from strconv.ato*
R=r
DELTA=137  (56 added, 4 deleted, 77 changed)
OCL=19505
CL=19522
2008-11-18 17:12:07 -08:00
Ian Lance Taylor
d12c1b99c7 Add ERROR comment for errmsg to look for.
R=gri
DELTA=1  (0 added, 0 deleted, 1 changed)
OCL=19460
CL=19500
2008-11-18 15:58:43 -08:00
Robert Griesemer
6c5fc055c8 import syntax incorrect
R=r
OCL=19457
CL=19457
2008-11-18 09:39:34 -08:00
Ian Lance Taylor
d8ecead73d The compiler should reject calling a const as though it were a
function.  Also update golden.out.

R=r
DELTA=18  (18 added, 0 deleted, 0 changed)
OCL=19433
CL=19448
2008-11-18 06:25:21 -08:00
Ian Lance Taylor
1945cc4c3c The compiler should reject comparisons between ints and nil.
R=gri
DELTA=8  (8 added, 0 deleted, 0 changed)
OCL=19434
CL=19436
2008-11-17 21:44:05 -08:00
Robert Griesemer
7692a93173 - new() accepts too many arguments
R=r
OCL=19413
CL=19413
2008-11-17 16:46:56 -08:00
Robert Griesemer
d58cd7626e - interface methods must have full function type
R=r
OCL=19410
CL=19410
2008-11-17 16:37:13 -08:00
Russ Cox
a1585b676b fix the easy parts of bug120
R=r,ken
DELTA=66  (52 added, 3 deleted, 11 changed)
OCL=19386
CL=19389
2008-11-17 13:58:45 -08:00
Russ Cox
f333f4685c floating point constant errors in 6g
R=r
OCL=19379
CL=19379
2008-11-17 12:33:49 -08:00
Ian Lance Taylor
b1e8b5f5b7 The scope rules have been clarified to indicate that a
variable may only be named after the complete declaration,
including the initialization statements.

R=gri
DELTA=61  (16 added, 45 deleted, 0 changed)
OCL=19343
CL=19376
2008-11-17 12:19:02 -08:00
Ian Lance Taylor
7dee51f491 The compilers should and do permit interface types to list
multiple method names with a single type.

R=r,gri
DELTA=10  (0 added, 10 deleted, 0 changed)
OCL=19292
CL=19298
2008-11-14 17:28:17 -08:00
Ian Lance Taylor
c4d8dc0b83 This bug has been fixed; moving it from bugs to fixedbugs.
R=gri
DELTA=36  (18 added, 18 deleted, 0 changed)
OCL=19059
CL=19133
2008-11-12 21:59:43 -08:00
Robert Griesemer
20b9bfb136 wrong code for array access
R=r
OCL=19107
CL=19109
2008-11-12 14:57:23 -08:00
Ian Lance Taylor
a957ceec35 The scope rules have been changed to say that labels live in a
separate per-function namespace.

R=gri
DELTA=24  (8 added, 16 deleted, 0 changed)
OCL=19006
CL=19057
2008-11-11 18:17:54 -08:00
Rob Pike
203a17c6ec update tests
R=gri
DELTA=28  (12 added, 14 deleted, 2 changed)
OCL=18923
CL=18923
2008-11-10 14:59:15 -08:00
Ian Lance Taylor
9c7374d71b Erroneous test case. The break statement should break out of
a select clause.

R=ken
DELTA=20  (0 added, 20 deleted, 0 changed)
OCL=18731
CL=18739
2008-11-06 17:39:48 -08:00
Ian Lance Taylor
ce15158502 Test that a break statement inside a select statement breaks
out of the enclosing loop.

R=ken
DELTA=20  (20 added, 0 deleted, 0 changed)
OCL=18686
CL=18714
2008-11-06 15:24:10 -08:00
Ian Lance Taylor
48d111f0b9 6g dumps core on this input file.
R=ken,rsc
DELTA=14  (14 added, 0 deleted, 0 changed)
OCL=18555
CL=18598
2008-11-05 15:27:40 -08:00
Ian Lance Taylor
7fe34ea002 Fix powser1.go to compile with the current 6g, which doesn't
recognize methods for a variable whose type is a named type
which is a pointer type.  Add bug117 to test this case.

R=r
DELTA=24  (22 added, 0 deleted, 2 changed)
OCL=18547
CL=18554
2008-11-05 12:06:48 -08:00
Russ Cox
56a7895386 fixed tests
R=r
DELTA=124  (62 added, 62 deleted, 0 changed)
OCL=18389
CL=18394
2008-11-03 15:52:34 -08:00
Rob Pike
c1198b9b87 update tests
R=rsc
DELTA=159  (65 added, 84 deleted, 10 changed)
OCL=18149
CL=18151
2008-10-30 13:26:57 -07:00
Russ Cox
cf9e46fec6 bugs from old gri mail
R=gri
OCL=18093
CL=18093
2008-10-29 19:34:47 -07:00
Ian Lance Taylor
e76e9cfc33 Call the right function for int32 values.
R=rsc
DELTA=2  (0 added, 0 deleted, 2 changed)
OCL=18073
CL=18073
2008-10-29 15:48:34 -07:00
Russ Cox
11a978adf5 shift bug in constant evaluator
R=ken
OCL=18031
CL=18031
2008-10-29 13:46:55 -07:00
Ian Lance Taylor
22a6747999 Per discussion earlier today with r and gri: when an interface
object has a value of type "int", it should not automatically
convert to type "int32".  That is, the type alias "int" should
be regarded as having been defined as though "type int int32"
appeared outside of the package, and as therefore being a
different type from "int32".

R=ken
DELTA=21  (20 added, 0 deleted, 1 changed)
OCL=17587
CL=17842
2008-10-24 22:40:32 -07:00
Rob Pike
4bcfffb761 update fixed bugs (and delete an irrelevant one)
R=rsc
DELTA=328  (158 added, 170 deleted, 0 changed)
OCL=17353
CL=17359
2008-10-17 11:48:51 -07:00
Rob Pike
13508ceabe bug is fixed
R=ken
OCL=17208
CL=17208
2008-10-15 11:49:34 -07:00
Rob Pike
151c0de8bc update bug list
R=ken
OCL=17169
CL=17169
2008-10-14 19:41:05 -07:00
Rob Pike
99c5b2ed4d 6g thinks a struct with one entry yields a composite that is a basic conversion
R=rsc
DELTA=12  (12 added, 0 deleted, 0 changed)
OCL=16989
CL=16998
2008-10-13 12:26:58 -07:00
Robert Griesemer
32d00e6cc6 - added missing ';' according to new rules
(no effect on the test, but now parseable)

R=r
OCL=16936
CL=16936
2008-10-10 16:18:01 -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
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
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
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
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
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
Ian Lance Taylor
aadd32223d Test that floating point constants resolve to type "float".
Currently 6g seems to resolve them to type "double".

R=ken,r
DELTA=30  (30 added, 0 deleted, 0 changed)
OCL=16132
CL=16152
2008-09-29 18:17:42 -07:00
Russ Cox
785afb0847 make bugs not fail
R=r
DELTA=6  (0 added, 0 deleted, 6 changed)
OCL=16110
CL=16114
2008-09-29 13:16:22 -07:00
Ian Lance Taylor
08df4dcf7d Storing an out of range constant into a variable should
ideally cause the compiler to give an error.  Right now 6g
warns about large shifts but does not give an error.  This CL
removes the out of range shift from shift.go, so that it will
work with gccgo, and adds a test case in bugs/ to be fixed at
a later date.

R=ken,r
DELTA=23  (9 added, 14 deleted, 0 changed)
OCL=16085
CL=16088
2008-09-29 11:03:21 -07:00
Ian Lance Taylor
6270e70b76 Add test case for 6g bug: result variable does not hide the
package name in the scope.

R=r
DELTA=12  (12 added, 0 deleted, 0 changed)
OCL=15913
CL=15926
2008-09-25 20:31:03 -07:00
Russ Cox
eeeaf6b931 6g misparses negative constants in imports
R=r
DELTA=8  (8 added, 0 deleted, 0 changed)
OCL=15893
CL=15898
2008-09-25 16:32:39 -07:00
Robert Griesemer
b6429768c6 bug: package identifier not visible
(should be in the scope chain like any other identifier)

R=r
DELTA=16  (16 added, 0 deleted, 0 changed)
OCL=15884
CL=15884
2008-09-25 15:45:19 -07:00
Ian Lance Taylor
b70d42f323 6g currently accepts setting a string value to an integer
constant without an explicit conversion.  I think that is a
bug.  This adds a test case for it.

Also, change errchk to include the string BUG in error
messages, so that failures are included in the count reported
by the run shell script.

R=r,ken
DELTA=11  (7 added, 0 deleted, 4 changed)
OCL=15857
CL=15880
2008-09-25 15:08:52 -07:00
Russ Cox
5383e28ea0 change string([]byte) to pass array, rather than &a[0],
to string convert.  if the byte array has length 0,
the computation of &a[0] throws an index bounds error.

for fixed size arrays, this ends up invoking arrays2d
unnecessarily, but it works.

R=ken
DELTA=304  (44 added, 28 deleted, 232 changed)
OCL=15674
CL=15678
2008-09-22 20:12:15 -07:00
Russ Cox
fb2c66710c compiler changes:
export.c:
		- only expose explicitly exported types to importer
		- fix behind your back
	go.h:
		- add deep() prototype (fixes 64-bit linux crash on time.go)
	go.y:
		- add a new syntax error case
	walk.c:
		- allow a,b = f() where f is func ptr (fixes bug088)

R=ken
OCL=15617
CL=15630
2008-09-22 12:45:01 -07:00
Rob Pike
9ebd9d3b7d fix some tests
R=ken
OCL=15598
CL=15598
2008-09-20 15:16:48 -07:00
Robert Griesemer
6a0fb60866 - added item to TODO list in go_spec
- filed a bug

R=r
OCL=15517
CL=15517
2008-09-18 23:16:22 -07:00
Rob Pike
85f8d4501a fix some broken tests (tests themselves were wrong)
R=gri,rsc
OCL=15310
CL=15402
2008-09-16 14:03:43 -07:00
Rob Pike
c3b397bd99 var bug is fixed
R=rsc
OCL=15400
CL=15400
2008-09-16 14:02:41 -07:00
Rob Pike
6f38063369 update bugs
delete bug100.go since the compiler is doing what we agreed.

R=gri
OCL=15367
CL=15367
2008-09-15 14:27:15 -07:00
Russ Cox
22731159b0 array literals not initialized
R=r
DELTA=11  (11 added, 0 deleted, 0 changed)
OCL=15222
CL=15276
2008-09-12 16:35:02 -07:00
Russ Cox
96b906498a out of bounds bug
R=r
DELTA=9  (9 added, 0 deleted, 0 changed)
OCL=15223
CL=15223
2008-09-12 09:43:21 -07:00
Russ Cox
d988e78889 bug 100 - spurious return warnings
R=r
OCL=15221
CL=15221
2008-09-12 08:37:08 -07:00
Russ Cox
ed18e57896 new bug
R=r
DELTA=34  (34 added, 0 deleted, 0 changed)
OCL=15178
CL=15181
2008-09-11 17:19:38 -07:00
Robert Griesemer
3cd7e43182 - map composites should be of correct map type (instead of pointer type)
R=r
OCL=15180
CL=15180
2008-09-11 17:16:50 -07:00
Robert Griesemer
24b3995cb6 - 2 bugs with composite literals
R=r
OCL=15179
CL=15179
2008-09-11 17:11:16 -07:00
Robert Griesemer
94979c3177 - added 2 bugs
- moved bug 060 back into bugs

R=r
OCL=15175
CL=15175
2008-09-11 16:17:25 -07:00
Rob Pike
d6f15be61d fixes for funcs without returns
R=ken
OCL=15170
CL=15170
2008-09-11 15:48:42 -07:00
Robert Griesemer
e35139afd4 - added bug093.go
R=r
DELTA=80  (78 added, 2 deleted, 0 changed)
OCL=15094
CL=15101
2008-09-10 14:21:42 -07:00
Ken Thompson
0194aaf918 T{} syntax for constructors
T(expression) for conversion
FUNC keyword no longer a type

R=r
OCL=14887
CL=14887
2008-09-05 19:50:34 -07:00
Rob Pike
7713599f95 update tests
R=gri
OCL=14847
CL=14847
2008-09-04 17:36:57 -07:00