Added v[f]table parsing support.
Added missing source location type.
Fixed whitespace.
Fixed whitespace.
Fixed handling of template methods processing.
Minor cleanup.
Extract field generation into its own method.
Skip implementation generation for proxy methods.
Use a constant displacement for block ids so they do not conflict with CLI ones.
Added OriginalNamespace to Declaration and now QualifiedOriginalName uses it.
Added Field to Property Declaration so now we can generate the property from a field instead of get or set methods.
Added FieldToPropertyPass, all non ignored fields can now be transformed into properties before generation.
CLIHeadersTemplate.cs now always tries to generate properties even when it is a value class. This is done because now fields should be converted to properties with FieldToPropertyPass.
Modified GetterSetterToPropertyPass more complex properties are supported. Now even if we only have a getter or a setter a property is created. Trying to convert multiple setter with same name and different types is an issue, so we check before creating a setter for a matching getter or the non existence of more setters.
CLIHeaderTemplate an CLISourcesTemplate now take care of properties with only a getter or s setter, and properties using fields that for now always have a getter and a setter.
Added support to emit messages without DiagnosticId.
Added Equality operator to AST Types. This was needed because GetterSetterToPropertyPass has to match a getter return type with a setter parameter type.
Removed unnecessary override keyword from interface method implementations.
Fixed methods generated by FunctionToInstanceMethodPass and FunctionToStaticMethodPass, to use parent class Namespace and keep function Namespace as OriginalNamespace.
Added CheckDuplicatedNamesPass that check all class members names for duplicated names. When a non function member has an already used name a number is append to its name. When a method is found with a know signature a number is append to its name. The appended number for each method overload is independently incremented, others members appended number start at the most overloaded method count which is then incremented with each non function member sharing the same name.