Bug in RangeIndex.where raising AssertionError when result is not from RangeIndex
- [x] closes #43240
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

cc @jbrockmendel 
2 options here:
- calling ``_shallow_copy`` which handles the cast to Int64Index in theses cases
- implementing a similar logic in ``_simple_new`` passing the call through to Int64Index or Float64Index depending on the dtype

But not sure if this would be counterintuitive for ``_simple_new``.
Thanks @phofl 