REF: simplify maybe_upcast
It reduces to a 2-liner.  It is currently used in 4 places, 2 of which I'm looking to remove in the near future.  At that point it will make sense to inline those 2 lines and remove maybe_upcast entirely.