+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.
+
+===========================================
+
+* 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
---
- When invoked by `Assign' on a value type, it knows the address where
- it will be stored.
+ It would be nice to optimize the case of:
+
+ Method (new ValueType ())
- In any other place value types do not need a local variable, so
- we could probably just do an `initobj' and leave the result *on the stack*
- as an argument.
+ 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:
----------
if (expr_type == target_type)
return true;
-
-Null Type
----------
-
- Need to introduce the NullType concept into the compiler, to address a
- few small buglets and remove the hardcoded values for NullLiteral.
-
- NullLiteral will be the only expression that has the NullType as its 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
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:
------
{ oob_stack.Push (lexer.Location) } takes a "slot" in the productions.
+* 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.
+
+
+