Clean Up -------- Move MapVariable from CodeGen into Block? Improve test: Necesitamos que a-capture8.cs pruebe si la asignacion funciona o no. Audit: Al emitir instancias de variables (EmitCaptureVariableInstance) parece ser que el loop de iteracion: while (si.ScopeBlock.ID != li.Block.ID) está mas actulizado que el codigo similar para parámetros, es posible que sea bitrot de parámetros o que en los parámetros usamos otra estrategia (lo segundo es más razonable). Iteradores: En algún lugar no pongo el `FieldBuilder' a un valor con los iteradores, ver expression.cs: 3616, local_info.FieldBuilder es nulo. Parameters: a-parameter4.cs falla por que no se liga el método anónimo anidado con el padre. Cleanup: CaptureContext cc = ContextForParameter (ec.CurrentBlock.Toplevel, name); if (cc != this){ cc.EmitParameter (ec, name); return; } That should be a static method, and call the instance method in the right CaptureContext, instead of having the CaptureContext compute that itself. MakePinned is gone: Need to audit the code now that use DeclareLocal, and that this uses a differnent code path than the main mcs. Need to fix the order in which types are closed: currently we are not compatible with the MS requirement that the parent has to be created before the children are. Tests and pending features: Switch statement is broken (because it uses ILGenerator during the Resolve phase, which with the `anonymous' branch is no longer the case: so we have to delay the creation of labels until they are needed, during the Emit phase). Validation: For testing, set ec.IG == null during resolve, restore value for emit. Currently it is commented out: there is a bug in the statement.cs changes (see the old-statement.cs, the compiler fails during bootstrap)