Update TODO to reflect all the new improvements
[mono.git] / mcs / mcs / TODO
index 20161362dd501e5abd32b8b8ce69ed179eb315e0..3ba5a205382a30085b6ad872fcfa90fe2021be94 100644 (file)
@@ -1,3 +1,13 @@
+TODO:
+
+       1. Create a "partial" emit context for each TypeContainer..
+
+       2. EmitContext should be partially constructed.  No IL Generator.
+
+       interface_type review.
+
+       parameter_array, line 952: `note: must be a single dimension array type'.  Validate this
+
 Dead Code Elimination bugs:
 ---------------------------
 
@@ -14,10 +24,15 @@ Major tasks:
        Implement base indexer access.
 
 readonly variables and ref/out
-
+       
 BUGS
 ----
 
+* We suck at reporting what turns out to be error -6.  Use the standard error message
+  instead.
+
+* Explicit indexer implementation is missing.
+
 * Check for Final when overriding, if the parent is Final, then we cant
   allow an override.
 
@@ -29,24 +44,6 @@ BUGS
        Explanation: The reason for the `instance' attribute on
        indexers is that indexers only apply to instances
 
-* Arrays
-
-       We need to make sure at *compile time* that the arguments in
-       the expression list of an array creation are always positive.
-
-* Indexer bugs:
-
-       the following wont work:
-
-       x [0] = x [1] = N
-
-       if x has indexers, the value of x [N] set is set to void.  This needs to be
-       fixed.
-
-* Array declarations
-
-       Multi-dim arrays are declared as [,] instead of [0..,0..]
-
 * Break/Continue statements
 
        A finally block should reset the InLoop/LoopBegin/LoopEnd, as
@@ -84,6 +81,13 @@ BUGS
 PENDING TASKS
 -------------
 
+* IMprove error handling here:
+
+       public static Process ()
+
+       THat assumes that it is a constructor, check if its the same name
+       as the class, if not report a different error than the one we use now.
+
 * Merge test 89 and test-34
 
 * Revisit
@@ -119,8 +123,6 @@ PENDING TASKS
 OPTIMIZATIONS
 -------------
 
-* Implement loop inversion for `For' as well.
-
 * There is too much unshared code between MemberAccess.Resolve and SimpleName
   resolve.  
  
@@ -159,11 +161,6 @@ OPTIMIZATIONS
        It could be static for all we care, and just use it for making
        sure that there are no recursive invocations on it.
 
-* Use of EmitBranchable
-
-       Currently I use brfalse/brtrue in the code for statements, instead of
-       using the EmitBranchable function that lives in Binary
-
 * ConvertImplicit
 
        Currently ConvertImplicit will not catch things like: