Fix the monotouch build
[mono.git] / mcs / mcs / TODO
index 742c14065264b83599968d793199593c2e99ced2..1abb0382b7bdc02b935afae54b8f06a9774130fe 100644 (file)
@@ -1,16 +1,55 @@
-The information on this file is mostly outdated, and its kept here for
-historical reasons
+===========================================
 
+* Value Parameter
+
+       I believe that `Value Parameter' might have been introduced
+       after C# 1.0, also notice than in the treatment of Value Parameter
+       the parameters are defined in four categories:
+
+       Section 9.3 in the latest spec.
+
+
+Large project:
+--------------
+
+New
+---
+
+       It would be nice to optimize the case of:
+
+               Method (new ValueType ())
+
+       So that no temporary is created, and we only use a newobj call
+       that remains on the stack, as opposed to ldloca, initobj, ldloc
+       call.
+
+NEW NOTES:
+----------
+
+       ImplicitStandardConversionExists and ImplicitStandardConversion
+       should always be the same, but there are a few diverging lines that
+       must be studied:
+
+                       if (expr_type == target_type && !(expr is NullLiteral))
+                               return expr;
+
+       vs:
+
+                       if (expr_type == target_type)
+                               return true;
+
+****************************************************************************************
+* 
+*   The information on the rest of this file is mostly outdated, and its kept here for
+*   historical reasons
+*
+****************************************************************************************
 Error Reporting:
 ----------------
 
        * Make yyerror show a nice syntax error, instead of the current mess.
 
-Iterators
----------
-
-       * Reset should throw not implemented now.
-
 Optimization ideas
 ------------------
 
@@ -63,17 +102,6 @@ DeclareLocal audit
 
        This is required to fix foreach in iterators.
 
-Large project:
---------------
-
-       Drop FindMembers as our API and instead extract all the data
-       out of a type the first time into our own datastructures, and
-       use that to navigate and search the type instead of the
-       callback based FindMembers.     
-
-       Martin has some some of this work with his TypeHandle code
-       that we could use for this.
-
 Ideas:
 ------
 
@@ -104,13 +132,6 @@ BUGS
        They should transfer control to the finally block if inside a try/catch
        block.
 
-* Method Registration and error CS111
-
-       The way we use the method registration to signal 111 is wrong.
-       
-       Method registration should only be used to register methodbuilders,
-       we need an alternate method of checking for duplicates.
-
 *
 > // CSC sets beforefieldinit
 > class X {
@@ -200,4 +221,3 @@ RECOMMENDATIONS
        Notice how numbering of the arguments changes as the
        { oob_stack.Push (lexer.Location) } takes a "slot"  in the productions.
 
-