Replace FullName with CSharpSignature
[mono.git] / mcs / mcs / PLAN
index 53ee3c8ebdc9f32f837a667bf09da4207d20f487..dc8324c3d51f72a4599f665d9362b911eb38bc5e 100644 (file)
@@ -1,46 +1,3 @@
-Missing:
-
-       Support parameters.
-
-Removal:
-
-       Probably remove the parameter mapping as well for iterators,
-       and just embed the knowledge on the parameter class.
-
-Moving Iterators/Anonymous to a more comprehensive Field-based setup
---------------------------------------------------------------------
-       IDEA:
-
-       Maybe turn LocalVariableReference into Field access?
-
-
-       One issue to consider if iterators/references in anon-methods
-       to a setup where we use a FieldExpr plus a "clever" instance
-       expression is that the LocalVariableReference will transform
-       itself into something else during Resolve, but the resulting
-       information must still be tracked in the LocalInfo
-
-       I believe this is because:
-
-       EmitMeta should not generate locals for things that have been
-       captured, so it is important to track this information.
-
-       Which means that we eliminate the knowledge about captured
-       information from LocalVariableReference/ParameterReference
-       during the Emit phase, but we still need it during the resolve
-       phase.
-
-Iterators:
-
-       In foreach, I do not like the if (.. InIterator) special
-       handling that we have there, it should be handled differently.
-
-Block.Parameters
-----------------
-
-       Maybe move this to Topblock?  There is a fixme there.
-
-
 Clean Up
 --------
 
@@ -83,75 +40,22 @@ Cleanup:
        in the right CaptureContext, instead of having the CaptureContext
        compute that itself.
 
-Refactor:
-
-       The code that links ScopeInfos together, its replicated in 3 places.
-
 MakePinned is gone:
 
        Need to audit the code now that use DeclareLocal, and that this uses
        a differnent code path than the main mcs.
 
-Parameters:
-
-       We can optimize and make sure that we point to a separate class that
-       only holds the parameters.
-
-We need to nest anonymous method hosts as anonymous classes, currently
-they are all toplevel.
-
 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.
 
-Would be nice to name the anonymous methods after the method container name.
-
-Problems:
-
-       We cluster blocks at the scope level, not at the level the declaration
-       when its really needed:
-
-       ie:
-
-               int a = 0;
-               if (a == 1)
-                       ;
-               int b = 0
-
-       We consider those:
-
-               int a;
-               {
-                       int b;
-               }
-
-       So we cluster them on separate anonymous helper classes, which
-       means the resulting is not as efficient.
-
-Optimization from MS:
-
-       When creating an anonymous method that is static, cache its value.
-       
-       I do not like the call to DoInit() in anonymous.cs, move it?
-
-       Parameter assignment seems too simple.
-
 Tests and pending features:
 
-       Support access to parameters of a delegate (see a11.cs)
-
-       How do parameters map to nested anonymous methods?
-
-       Helper classes should be nested classes of the original host class.
-       (permission: access private fields from another part)
-       
        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).
 
-       Iteratorks are broken.
-
 Validation:
 
        For testing, set ec.IG == null during resolve, restore value
@@ -160,6 +64,3 @@ Validation:
        Currently it is commented out: there is a bug in the
        statement.cs changes (see the old-statement.cs, the compiler
        fails during bootstrap)
-
-       Need to set `S.R.CompilerServices.CompilerGeneratedAttribute'
-       on classes that the compiler generates.