+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:
---------------------------
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.
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
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
OPTIMIZATIONS
-------------
-* Implement loop inversion for `For' as well.
-
* There is too much unshared code between MemberAccess.Resolve and SimpleName
resolve.
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: