leapmotion/autowiring — pull request #223 by codemercenary (2014-11-24 22:49:43+00:00)
Title: Fixing issues with types that inherit their AutoFilter implementation

Adding a unit test to demonstrate this problem, and a corresponding fix which involves modification of the TypeUnifierComplexAutoFilter to include the original type.

The root of the problem is that decltype(&T::Foo) might actually evaluate to a member function type incompatible with T. This occurs when Foo is declared in a base of T, rather than in T itself, and the result is that TypeUnifierComplexAutoFilter will actually create concrete types that completely bypass T.