summaryrefslogtreecommitdiff
path: root/test/assign.go
Commit message (Collapse)AuthorAgeFilesLines
* test: [a-c]: add introductory comments to testsRob Pike2012-02-191-0/+3
| | | | | | | | | | | | Very few of the compiler regression tests include a comment saying waht they do. Many are obvious, some are anything but. I've started with a-c in the top directory. More will follow once we agree on the approach, correctness, and thoroughness here. zerodivide.go sneaked in too. R=rsc, r CC=golang-dev http://codereview.appspot.com/5656100
* test: use testlib (first 100)Russ Cox2012-02-161-1/+1
| | | | | | | | | | | X ,s;^// \$G (\$D/)?\$F\.go *$;// compile;g X ,s;^// \$G (\$D/)?\$F\.go && \$L \$F\.\$A *$;// build;g X ,s;^// \$G (\$D/)?\$F\.go && \$L \$F\.\$A && \./\$A\.out *$;// run;g X ,s;^// errchk \$G( -e)? (\$D/)?\$F\.go *$;// errorcheck;g R=golang-dev, bradfitz CC=golang-dev http://codereview.appspot.com/5656082
* allow copy of struct containing unexported fieldsRuss Cox2011-11-151-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | An experiment: allow structs to be copied even if they contain unexported fields. This gives packages the ability to return opaque values in their APIs, like reflect does for reflect.Value but without the kludgy hacks reflect resorts to. In general, we trust programmers not to do silly things like *x = *y on a package's struct pointers, just as we trust programmers not to do unicode.Letter = unicode.Digit, but packages that want a harder guarantee can introduce an extra level of indirection, like in the changes to os.File in this CL or by using an interface type. All in one CL so that it can be rolled back more easily if we decide this is a bad idea. Originally discussed in March 2011. https://groups.google.com/group/golang-dev/t/3f5d30938c7c45ef R=golang-dev, adg, dvyukov, r, bradfitz, jan.mercl, gri CC=golang-dev http://codereview.appspot.com/5372095
* test: remove semiocolons.Rob Pike2010-09-041-24/+24
| | | | | | | | The ken directory is untouched so we have some examples with explicit semis. R=gri CC=golang-dev http://codereview.appspot.com/2157041
* gc: check for assignment to private fields during initializationRuss Cox2009-12-031-0/+8
| | | | | R=ken2 http://codereview.appspot.com/165055
* gc: five bug fixes, one better error.Russ Cox2009-11-151-1/+9
| | | | | | | | | | | | | | | | | | | | * check for struct literal assignment to private fields. * record, fix crash involving parallel map assignment. * avoid infinite recursion in exportassignok. * make floating point bounds check precise. * avoid crash on invalid receiver. * add context to error about implicit assignment. Fixes issue 86. Fixes issue 88. Fixes issue 158. Fixes issue 174. Fixes issue 201. Fixes issue 204. R=ken2 http://codereview.appspot.com/154144
* rewrite errchk in perl for speed (compared to bash)Russ Cox2009-10-091-4/+4
| | | | | | | R=iant DELTA=125 (51 added, 53 deleted, 21 changed) OCL=35508 CL=35511
* last round: non-package codeRuss Cox2009-09-151-0/+4
| | | | | | | R=r DELTA=127 (38 added, 3 deleted, 86 changed) OCL=34640 CL=34650
* Adjust expected errors to work with gccgo.Ian Lance Taylor2009-05-311-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change to assign.go is because the gcc testsuite fails to handle .* in a normal way: it matches against the entire compiler output, not just a single line. assign.go:15:6: error: incompatible types in assignment (implicit assignment of 'sync.Mutex' hidden field 'key') assign.go:19:6: error: incompatible types in assignment (implicit assignment of 'sync.Mutex' hidden field 'key') assign.go:23:6: error: incompatible types in assignment (implicit assignment of 'sync.Mutex' hidden field 'key') assign.go:27:6: error: incompatible types in assignment (implicit assignment of 'sync.Mutex' hidden field 'key') chan/perm.go:14:5: error: incompatible types in assignment chan/perm.go:15:5: error: incompatible types in assignment chan/perm.go:16:6: error: incompatible types in assignment chan/perm.go:17:6: error: incompatible types in assignment chan/perm.go:24:7: error: invalid send on receive-only channel chan/perm.go:25:12: error: invalid send on receive-only channel chan/perm.go:31:4: error: invalid receive on send-only channel chan/perm.go:32:9: error: invalid receive on send-only channel chan/perm.go:38:2: error: invalid send on receive-only channel chan/perm.go:42:2: error: invalid receive on send-only channel initializerr.go:14:17: error: reference to undefined variable 'X' initializerr.go:14:19: error: mixture of field and value initializers initializerr.go:15:26: error: duplicate value for field 'Y' initializerr.go:16:10: error: too many values in struct composite literal initializerr.go:18:19: error: index expression is not integer constant initializerr.go:17:11: error: too many elements in composite literal R=rsc DELTA=12 (0 added, 0 deleted, 12 changed) OCL=29657 CL=29665
* stricter rules for assignment.Russ Cox2009-05-211-0/+33
when assigning a multifield object (structs or arrays of structs) they must not contain any fields that could not be assigned individually. R=ken OCL=29192 CL=29194