As I see, the code generator has deep knowledge about the compiler - and that is quite straightforward. If you look at this MSDN page:
http://msdn.microsoft.com/en-us/library/66x5fx1b.aspx[
^], you will notice, that the code generator is skipping a step, and it is generating the code that the compiler would also make.
Quote:
The destructor implicitly calls Finalize on the base class of the object. Therefore, the previous destructor code is implicitly translated to the following code:
...and there it comes what you get.
So you have a problem only if you want that syntax for some reason - since the semantics will be the same.