Remove the useless GeneratePInvokeMethod method.
Search for mangled symbols for functions in addition to variables.
Check if the class has a base class instead of just a base.
Convert the GetFunctionOverloads return to a list to use IndexOf.
Fix whitespace inconsistency by needing a newline when generating functions.
ASTVisitor type visitors now try to visit a common VisitType first.
Added a new abstract class DeclarationContext that acts as a container for declarations and make Class and Namespace inherit from it.
Added ASTVisitor option to not visit function parameters.
Added ASTVisitor option to not visit template specialization arguments.
Use the new keyword to tell the compiler we are hiding the GetFunctionOverloads overload.
Use the regular templates since classes are now regular declaration contexts and they do not have a separate container for FunctionTemplates.
Since TranslationUnit is just a regular DeclarationContext we can now use VisitDeclarationContext instead of replicating the walking logic. This also makes sure we walk through every declaration, which we did not do before.
Added a targets parameter to RemovePrefix to be able to only remove prefixes for some kinds of declarations.
Make sure we skip ignored overloads when checking for ambiguous overloads.
Added very basic support for dependent array types.
Fixed the IsGenerated and IsProcessed flags on declarations to actually do the correct thing instead of doing the opposite of what they should.
When checking for ignored declarations: check the complete version of the declaration if there is one, use the type map if one is found, or ignore the declaration if it is not generated.
Remove unused using.
Remove useless out variables null initialization.
Use GetNestedQualifiedName to properly deal with nested declaration type names.