@@ -65,7 +65,6 @@ rpad(ch::Chr, cnt::Integer, pad::AbstractChar=' ') =
6565const SetOfChars =
6666 Union{Tuple{Vararg{<: AbstractChar }},AbstractVector{<: AbstractChar },Set{<: AbstractChar }}
6767
68- @static if ! isdefined (Base, :eachsplit )
6968function __split (str, splitter, limit:: Integer , keep_empty:: Bool , strs:: Vector )
7069 pos = 1
7170 lst = lastindex (str)
@@ -86,7 +85,6 @@ function __split(str, splitter, limit::Integer, keep_empty::Bool, strs::Vector)
8685 end
8786 (keep_empty || pos <= lst) ? push! (strs, SubString (str, pos)) : strs
8887end
89- end
9088
9189function __rsplit (str, splitter, limit:: Integer , keep_empty:: Bool , strs:: Vector )
9290 res = find (Last, splitter, str)
@@ -113,22 +111,25 @@ splitarr(::MaybeSub{String}) = SubString{String}[]
113111splitarr (:: MaybeSub{T} ) where {T<: Str } =
114112 SubString{Str{basecse (T),Nothing,Nothing,Nothing}}[]
115113
116- @static if ! isdefined (Base, :eachsplit )
114+ @static if isdefined (Base, :eachsplit )
115+ const _SplitTypes = MaybeSub{<: Str{<:Union{_LatinCSE,_UCS2CSE,_UTF32CSE}} }
116+ else
117+ const _SplitTypes = MaybeSub{<: Str }
117118Base. _split (str:: MaybeSub{<:Str} , splitter, limit, keepempty, vec) =
118119 __split (str, splitter, limit, keepempty, vec)
120+ end
119121
120- split (str:: MaybeSub{<:Str} , splitter;
122+ split (str:: _SplitTypes , splitter;
121123 limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
122124 __split (str, splitter, limit, checkkeep (keepempty, keep, :split ), splitarr (str))
123125
124- split (str:: MaybeSub{<:Str} , splitter:: AbstractChar ;
126+ split (str:: _SplitTypes , splitter:: AbstractChar ;
125127 limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
126128 __split (str, isequal (splitter), limit, checkkeep (keepempty, keep, :split ), splitarr (str))
127129
128- split (str:: MaybeSub{<:Str} , splitter:: SetOfChars ;
130+ split (str:: _SplitTypes , splitter:: SetOfChars ;
129131 limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
130132 __split (str, in (splitter), limit, checkkeep (keepempty, keep, :split ), splitarr (str))
131- end
132133
133134Base. _rsplit (str:: MaybeSub{<:Str} , splitter, limit, keepempty, vec) =
134135 __rsplit (str, splitter, limit, keepempty, vec)
0 commit comments