Fallback to stringification and string comparison if we cannot compare
the IdentifierInfos, which is the case for C++ overloaded operators,
constructors, destructors, etc.
Examples:
{ "std", "basic_string", "basic_string", 2} // match the 2 param std::string constructor { "std", "basic_string", "~basic_string" } // match the std::string destructor { "aaa", "bbb", "operator int" } // matches the struct bbb conversion operator to int
Is it possible to have an empty QualifiedName at this point? Should we assert that it is not empty?