* MenuAPI.cs: On instance of MenuTracker check if source control is
[mono.git] / mcs / mcs / TODO
index a83bfed13d55bb4d69e1cacb9c3fbab3c2bc77d0..62b8394c257d6944fbb76c8ad616166d345167a2 100644 (file)
@@ -1,3 +1,57 @@
+Iterators
+=========
+
+
+       Ok, solved part of the problem, but not the second.
+
+       Apparently there are 2 scopes in test-iter-05.cs that
+       are referenced, but when we call "ComputeMethodHost" in
+       iterators.cs:854 this information is not yet available.
+
+* Anonymous Methods
+===================
+
+In EmitAnonymousHelperClasses we set the "NeedThis" parameter of all
+the roots, but this is not necessary.  We should track the
+"HaveCapturedFields" on a per-ScopeInfo basis, and only set the
+HaveCapturedFields on the proper roots, instead of all the roots.
+
+
+
+===========================================
+
+* 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.
+
+
+* Review
+--------
+
+       Reference type equality operators (15.9.6) introduced
+       operator == (C x, C y) where C is a reference type.
+
+       Our compiler used:
+
+       operator == (object a, object b)
+
+       Review our implementation.
+
+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:
 ----------
 
@@ -25,12 +79,6 @@ Null Type
        This is what must be used to test for Null literals, instead of `is NullLiteral',
        and this will introduce a couple of fixes to the rules.
 
-       Revert Martin's patch to Conditional expression that worked around this bug:
-
-               Reference r = xx ? null : null
-
-       The right fix is to introduce NullType
-
 ****************************************************************************************
 * 
 *   The information on the rest of this file is mostly outdated, and its kept here for
@@ -45,7 +93,6 @@ Error Reporting:
 
 Iterators
 ---------
-
        * Reset should throw not implemented now.
 
 Optimization ideas