Remove Any::GetType() and rely on type name when comparing types
std::type_info::operator==() uses pointers to type names on some
implementations (e.g. gcc with __GXX_MERGED_TYPEINFO_NAMES defined).
This leads to problems such that types created in different translation
units could be treated as different even though they refer to the
same type.
Working with type_info directly seems unreliable and names of the
types should be used in comparisons directly.
Fixed the implementation of Any::IsTypeCompatible<T>() to use type
names and remove Any::GetType() to avoid any future problems for
client code to compare the type information manually.
Added Any::GetTypeName() and Any::GetUndecoratedTypeName() for
convenience.
BUG: 25132472
Change-Id: I8ba27a611c8edad2260dbed1c2f15633c8b3a3fe
5 files changed