X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2FTODO;h=1abb0382b7bdc02b935afae54b8f06a9774130fe;hb=21dd2b0200d091c43fce9e1941e8ab5e111f3651;hp=742c14065264b83599968d793199593c2e99ced2;hpb=5e963bcf5d727682ffdab634fa680ace27c1ccf7;p=mono.git diff --git a/mcs/mcs/TODO b/mcs/mcs/TODO index 742c1406526..1abb0382b7b 100644 --- a/mcs/mcs/TODO +++ b/mcs/mcs/TODO @@ -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. -