@@ -40,7 +40,7 @@ class RangeIndex(Int64Index):
4040
4141 Parameters
4242 ----------
43- start : int (default: 0), range or RangeIndex instance
43+ start : int (default: 0), or other RangeIndex instance
4444 If int and "stop" is not given, interpreted as "stop" instead.
4545 stop : int (default: 0)
4646 step : int (default: 1)
@@ -84,11 +84,12 @@ def __new__(cls, start=None, stop=None, step=None,
8484 if fastpath :
8585 return cls ._simple_new (range (start , stop , step ), name = name )
8686
87- # RangeIndex, range
88- if isinstance (start , (RangeIndex , range )):
89- if isinstance (start , RangeIndex ):
90- name = start .name if name is None else name
91- start = start ._range
87+ cls ._validate_dtype (dtype )
88+
89+ # RangeIndex
90+ if isinstance (start , RangeIndex ):
91+ name = start .name if name is None else name
92+ start = start ._range
9293 return cls ._simple_new (start , dtype = dtype , name = name )
9394
9495 # validate the arguments
@@ -122,14 +123,14 @@ def from_range(cls, data, name=None, dtype=None):
122123 raise TypeError (
123124 '{0}(...) must be called with object coercible to a '
124125 'range, {1} was passed' .format (cls .__name__ , repr (data )))
126+
127+ cls ._validate_dtype (dtype )
125128 return cls ._simple_new (data , dtype = dtype , name = name )
126129
127130 @classmethod
128131 def _simple_new (cls , values , name = None , dtype = None , ** kwargs ):
129132 result = object .__new__ (cls )
130133
131- cls ._validate_dtype (dtype )
132-
133134 # handle passed None, non-integers
134135 if values is None :
135136 # empty
0 commit comments