Fix typecheck in case of multiple instances of type meta data
In most cases the pointer equality test is sufficient. However, in some cases, depending on how things are split across shared objects, we can end up with multiple instances of the interface metadata constants. So if the pointers match, the interfaces are equal, if they don't match we have to compare the interface names.
Showing with 15 additions and 1 deletion