2001-11-16 Miguel de Icaza <miguel@ximian.com>
authorMiguel de Icaza <miguel@gnome.org>
Sat, 17 Nov 2001 01:16:14 +0000 (01:16 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Sat, 17 Nov 2001 01:16:14 +0000 (01:16 -0000)
commitfea2d810c8ea1e7d5afba5196cac4e3334a9924f
tree15c6001da3d806ecb9dd942892b61594dacf5d8c
parent8007424631eebc8a4f6736f63e2cf743dd8a6af2
2001-11-16  Miguel de Icaza  <miguel@ximian.com>

* statement.cs: Implement foreach on multi-dimensional arrays.

* parameter.cs (Parameters.GetParameterByName): Also lookup the
name of the params argument.

* expression.cs: Use EmitStoreOpcode to get the right opcode while
initializing the array.

(ArrayAccess.EmitStoreOpcode): move the opcode generation here, so
we can use this elsewhere.

* statement.cs: Finish implementation of foreach for single
dimension arrays.

* cs-parser.jay: Use an out-of-band stack to pass information
around, I wonder why I need this.

foreach_block: Make the new foreach_block the current_block.

* parameter.cs (Parameters.GetEmptyReadOnlyParameters): New
function used to return a static Parameters structure.  Used for
empty parameters, as those are created very frequently.

* cs-parser.jay, class.cs: Use GetEmptyReadOnlyParameters

2001-11-16  Miguel de Icaza  <miguel@ximian.com>

* test-34.cs: Improve this test to check if we are actually
walking over the arguments in foreach.

svn path=/trunk/mcs/; revision=1371
15 files changed:
mcs/errors/cs0136-2.cs [new file with mode: 0755]
mcs/mcs/ChangeLog
mcs/mcs/TODO
mcs/mcs/attribute.cs
mcs/mcs/class.cs
mcs/mcs/cs-parser.jay
mcs/mcs/driver.cs
mcs/mcs/expression.cs
mcs/mcs/parameter.cs
mcs/mcs/statement.cs
mcs/mcs/typemanager.cs
mcs/tests/ChangeLog
mcs/tests/makefile
mcs/tests/test-34.cs
mcs/tests/test-44.cs [new file with mode: 0755]