fn characteristic_def_id_of_type_cached<'a>( ty: Ty<'a>, visited: &mut SsoHashSet<Ty<'a>> ) -> Option<DefId>
As a heuristic, when we see an impl, if we see that the
‘self type’ is a type defined in the same module as the impl,
we can omit including the path to the impl itself. This
function tries to find a “characteristic
DefId” for a
type. It’s just a heuristic so it makes some questionable
decisions and we may want to adjust it later.
Visited set is needed to avoid full iteration over deeply nested tuples that have no DefId.