2008-06-19 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Thu, 19 Jun 2008 14:36:09 +0000 (14:36 -0000)
committerMarek Safar <marek.safar@gmail.com>
Thu, 19 Jun 2008 14:36:09 +0000 (14:36 -0000)
commit7dbb973a996579e750103bf1ff888d542278fe42
treefb1efd2c5892f028d6b778d20c414a5b02faec0c
parent3b0d913c9968e3ac58c065919952e5cdc98d42eb
2008-06-19  Marek Safar  <marek.safar@gmail.com>

* typemanager.cs, lambda.cs, parameter.cs, ecore.cs, linq.cs, class.cs
delegate.cs, iterators.cs, cs-parser.jay, assign.cs, anonymous.cs, driver.cs
expression.cs, codegen.cs, statement.cs

Fixes bugs: TBD

** Anonymous methods, lambda expressions rewrite **

Anonymous expressions are now resolved when an explicit block is resolved
and they don't require any registration procedure anymore. Further,
anonymous methods are defined when explicit block is emitted which allows
better control of whole process and opens possibilities for more
optimizations as well as alternative to reverse whole process.

A concept of `MutateHoistedGenericType' was introduced to keep the resolve
process consistent and to correctly emit hoisted generic methods when they
have at least 1 hoisted variable.

svn path=/trunk/mcs/; revision=106214
16 files changed:
mcs/mcs/ChangeLog
mcs/mcs/anonymous.cs
mcs/mcs/assign.cs
mcs/mcs/class.cs
mcs/mcs/codegen.cs
mcs/mcs/cs-parser.jay
mcs/mcs/delegate.cs
mcs/mcs/driver.cs
mcs/mcs/ecore.cs
mcs/mcs/expression.cs
mcs/mcs/iterators.cs
mcs/mcs/lambda.cs
mcs/mcs/linq.cs
mcs/mcs/parameter.cs
mcs/mcs/statement.cs
mcs/mcs/typemanager.cs