Extended the ObjectOverridesPass to generate ToString methods if the insertion operator (<<) is overloaded.
Do not generate ToString override for value types - not handled properly in generated code yet.
Merge pull request #250 from azeno/tostring-override

CLI backend - ToString override
Added failing test for the CheckAmbiguousFunctionsPass.

Test shows that all methods get ignored instead of just the two const overloads.
Check for constness first in CheckAmbiguousFunctionPass before doing the check for default parameters.

Fixes test case from previous commit.
Merge pull request #253 from azeno/const-method-overload-fix

Const method overload fix
Added Vagrant file for Linux CI build bot.
Implemented support for pack expansion types in the AST converter.
Implemented support for decayed types in the AST converter.
Fixed InjectedClassNameType layout in the AST.

* Template specialization member is now a pointer so null value works properly
Improved type loc handling when walking types.

We now keep desugaring them until we get to the proper type loc class.
Do not use getFileEntryForID when setting an OriginalPtr for units.

It might not return proper values for <invalid> TUs.
Improve error handling when looking for symbols with Options.CheckSymbols.
fix CSharpTemp.TestDestructors

TestDestructors test cannot be run twice as a static variable holds data from
the first run.

Add an init function to set the static variable to a known state.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
CppParser: remove unnecessary #includes

Use forward declarations to avoid the need to include lots of clang headers.

This drops the compilation time for CppParser from 17.8 seconds to 14.1 seconds
for me.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
CppParser: fix compile warnings

Fix trivial switch/case compile warnings like the one below by adding default
case where suitable, or adding the missing cases when that makes more sense.

enumerator 'LastPreprocessingDirective' in switch of enum 'clang::PreprocessedEntity::EntityKind' is not handled

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
Parser: fix compile warnings

Fix trivial switch/case compile warnings like the one below by adding default
case where suitable, or adding the missing cases when that makes more sense.

enumerator 'LastPreprocessingDirective' in switch of enum 'clang::PreprocessedEntity::EntityKind' is not handled

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
Basic: fix compile warning

'operator|' : recursive on all control paths, function will cause runtime stack overflow

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
Merge pull request #258 from tomba/remove-includes

CppParser: remove unnecessary #includes
Merge pull request #255 from tomba/fix-warnings

Fix trivial warnings