Committing Miguel's type lookup patch.
[mono.git] / mcs / mcs / TODO
index 71d3f20b231d59cda8a41301e081180c7eef2cae..31311aef1af00413f7a999b701377ab65d9fe8f5 100644 (file)
@@ -1,3 +1,16 @@
+TODO:
+
+       1. Create a "partial" emit context for each TypeContainer..
+
+       2. EmitContext should be partially constructed.  No IL Generator.
+
+       Optimize the internal type expressions in the parser (system_object, etc)
+       to be something other than DecomposeQI-based expressions.
+
+       interface_type review.
+
+       parameter_array, line 952: `note: must be a single dimension array type'.  Validate this
+
 Dead Code Elimination bugs:
 ---------------------------
 
@@ -14,24 +27,17 @@ Major tasks:
        Implement base indexer access.
 
 readonly variables and ref/out
-
-Important:
-----------
-
-       During enumeration definition, a set of extra operators are 
-       allowed.
        
 BUGS
 ----
 
-* Check for Final when overriding, if the parent is Final, then we cant
-  allow an override.
-
-* Implement visibility.
+* We suck at reporting what turns out to be error -6.  Use the standard error message
+  instead.
 
-* Visibility
+* Explicit indexer implementation is missing.
 
-       I am not reporting errors on visibility yet.
+* Check for Final when overriding, if the parent is Final, then we cant
+  allow an override.
 
 * Interface indexers
 
@@ -41,16 +47,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.
-
-* Implement dead code elimination in statement.cs
-
-       It is pretty simple to implement dead code elimination in 
-       if/do/while
-
 * Indexer bugs:
 
        the following wont work:
@@ -101,6 +97,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
@@ -143,8 +146,6 @@ OPTIMIZATIONS
  
 * User Defined Conversions is doing way too many calls to do union sets that are not needed
 
-* Implement loop inversion for our loops
-
 * Add test case for destructors
 
 * Places that use `Ldelema' are basically places where I will be
@@ -253,12 +254,6 @@ RECOMMENDATIONS
        Not sure that this grammar is correct, we might have to
        resolve this during semantic analysis.
 
-* Optimizations
-
-       Only create one `This' instance per class, and reuse it.
-
-       Maybe keep a pool of constants/literals (zero, 1)?
-
 * Idea
 
        MethodGroupExpr
@@ -277,28 +272,3 @@ RECOMMENDATIONS
        Otherwise, a resolution will return a MethodGroupExpr which is
        not guaranteed to have set its `Expression.Type' to a non-null
        value.
-
-
-************
-Potential bug:
-
-       We would need to decode the shortname before we lookup members?
-       
-       Maybe not.
-
-interface I {
-       void A ();
-}
-
-class X : I {
-       void I.A ();
-}
-
-class Y : X, I {
-       void I.A () {}
-}
-
-
-
-*************
-