REF: _is_compatible_with_other -> _can_union_without_object_cast
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Changes the behavior in one test where ATM we behave differently for Series/ndarray than we do for Index arg
> Changes the behavior in one test where ATM we behave differently for Series/ndarray than we do for Index arg

Can you show an example of that behaviour change? > Can you show an example of that behaviour change?

https://github.com/pandas-dev/pandas/pull/36384/files#diff-a3619540517f93ee7c657a439b986962L50

```
everything = tm.makeDateIndex(10)
first = everything[:5]
second = everything[5:]

expected_old = first.astype("O").union(pd.Index(second.values, dtype="O")).astype("O")
expected_new = first.union(second)

case = list(second.values)  # <-- same for np.array(second.values)
result = first.union(case)
tm.assert_index_equal(result, expected)
```

ATM `_is_compatible_with_other` checks specifically for Index subclasses as opposed to dtype-based checks, and so we end up converting to object when we have anything that isn't an Index. can rebase Rebased +green > ATM _is_compatible_with_other checks specifically for Index subclasses as opposed to dtype-based checks, and so we end up converting to object when we have anything that isn't an Index.

Thanks, then this is totally a reasonable change ;) 
Can you add a whatsnew note about it? I would call it a bug fix. very nice!