Wraps either IndexVec (during hir_crate), which acts like a primary
storage for most of the MaybeOwners, or FxIndexMap during delayed AST -> HIR
lowering of delegations (lower_delayed_owner),
in this case we can not modify already created IndexVec, so we use other map.
When we have a ty alias we may have two where clauses. To give the best diagnostics, we set the span
to the where clause that is preferred, if it exists. Otherwise, it sets the span to the other where
clause if it exists.