add ISafeSerializationData
[mcs.git] / tools / monop / TODO
blobf80cf256164a88eaa864fbb964f77114630af9a6
1 * Handle explicit vs implicit interfaces
3 Partially done. Needs alot of testing. Some of the more exotic stuff
4 that C# can do is not handled. eg.
6 interface IFoo {
7         void Blah ();
10 class A {
11         void Blah ();
14 class B : A, IFoo {
17 C# makes a stub in B that calls A.Blah in order to implement IFoo.Blah
19 * Handle printing out constants
20 ** String/char consts
21 Mostly done. The only work we need is to escape stuff:
23         class X {
24                 const string Z = "\t";
25         }
27 ** Numerical constants
28 Integers generally work. Need to check things like decimal.
30 ** Enumeration constants
31 Needs alot of work. We should print out
33         const MyEnum x = MyEnum.Y
35         const MyFlags z = MyFlags.X | MyFlags.Y
37 etc.
39 * Enumerations
40 Need to print out the values. This should idealy be done in the most
41 sane way possible:
42      * In the case where values are not needed (eg, sequential from
43      1...n), don't print out the enumeration values.
44      * For flags enums, values of members that are 2^n would be
45      printed as (1 << n). Values that are combinations of other values
46      would be printed as MyFlags.X | MyFlags.Y
48 The goals here are (in order)
49     * To print something that will compiler correctly (with the same
50     values as the origional)
51     * To print something that is as clean/humanly readable/looks like
52     it was written by a person as possible.
54 * Generics
55 ** Console Parsing
56 It is a PITA to type:
58 monop2 'System.Collections.Generic.List`1'
60 We should allow people to type System.Collections.Generic.List and
61 have it guess the arity. For something like Nullable where it is
62 overloaded by arity, we'd have to print a message.
64 * Console Coloring
65 It'd be cool to have syntax highlighting for the console. Some
66 examples of this are:
68          * colorgcc
69          * ls --color=auto
71 * Attributes
72 .NET 2.0 has support for getting the data that custom attributes
73 have. This would allow us to correctly print stuff out. Probably want
74 this to be a command line option.