@@ -65,7 +65,6 @@ rpad(ch::Chr, cnt::Integer, pad::AbstractChar=' ') =
65
65
const SetOfChars =
66
66
Union{Tuple{Vararg{<: AbstractChar }},AbstractVector{<: AbstractChar },Set{<: AbstractChar }}
67
67
68
- @static if ! isdefined (Base, :eachsplit )
69
68
function __split (str, splitter, limit:: Integer , keep_empty:: Bool , strs:: Vector )
70
69
pos = 1
71
70
lst = lastindex (str)
@@ -86,7 +85,6 @@ function __split(str, splitter, limit::Integer, keep_empty::Bool, strs::Vector)
86
85
end
87
86
(keep_empty || pos <= lst) ? push! (strs, SubString (str, pos)) : strs
88
87
end
89
- end
90
88
91
89
function __rsplit (str, splitter, limit:: Integer , keep_empty:: Bool , strs:: Vector )
92
90
res = find (Last, splitter, str)
@@ -113,22 +111,25 @@ splitarr(::MaybeSub{String}) = SubString{String}[]
113
111
splitarr (:: MaybeSub{T} ) where {T<: Str } =
114
112
SubString{Str{basecse (T),Nothing,Nothing,Nothing}}[]
115
113
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 }
117
118
Base. _split (str:: MaybeSub{<:Str} , splitter, limit, keepempty, vec) =
118
119
__split (str, splitter, limit, keepempty, vec)
120
+ end
119
121
120
- split (str:: MaybeSub{<:Str} , splitter;
122
+ split (str:: _SplitTypes , splitter;
121
123
limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
122
124
__split (str, splitter, limit, checkkeep (keepempty, keep, :split ), splitarr (str))
123
125
124
- split (str:: MaybeSub{<:Str} , splitter:: AbstractChar ;
126
+ split (str:: _SplitTypes , splitter:: AbstractChar ;
125
127
limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
126
128
__split (str, isequal (splitter), limit, checkkeep (keepempty, keep, :split ), splitarr (str))
127
129
128
- split (str:: MaybeSub{<:Str} , splitter:: SetOfChars ;
130
+ split (str:: _SplitTypes , splitter:: SetOfChars ;
129
131
limit:: Integer = 0 , keepempty:: Bool = true , keep:: Union{Nothing,Bool} = nothing ) =
130
132
__split (str, in (splitter), limit, checkkeep (keepempty, keep, :split ), splitarr (str))
131
- end
132
133
133
134
Base. _rsplit (str:: MaybeSub{<:Str} , splitter, limit, keepempty, vec) =
134
135
__rsplit (str, splitter, limit, keepempty, vec)
0 commit comments