Is this type close enough to that type so that members with the two types would override each other?
Is this type close enough to that type so that members with the two types would override each other?
This means:
Either both types are polytypes with the same number of
type parameters and their result types match after renaming
corresponding type parameters
Or both types are method types with =:=-equivalent(*) parameter types
and matching result types after renaming corresponding parameter types
if the method types are dependent.
Or both types are =:=-equivalent
Or neither type takes term or type parameters.
(*) when matching with a Java method, we also regard Any and Object as equivalent parameter types. (TODO)
This function will always use unsafe-nulls semamtics to check the types.
This is because we are using a relaxed rule (ignoring Null types)
to check overriding Java methods.