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.
17 C# makes a stub in B that calls A.Blah in order to implement IFoo.Blah
19 * Handle printing out constants
21 Mostly done. The only work we need is to escape stuff:
24 const string Z = "\t";
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
40 Need to print out the values. This should idealy be done in the most
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.
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.
65 It'd be cool to have syntax highlighting for the console. Some
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.