@@ -58,8 +58,13 @@ DefaultDictBase{K,V}(default::F) where {K,V,F} = DefaultDictBase{K,V,F,Dict{K,V}
5858@delegate_return_parent DefaultDictBase. d [ delete!, empty!, setindex!, sizehint! ]
5959
6060similar (d:: DefaultDictBase{K,V,F} ) where {K,V,F} = DefaultDictBase {K,V,F} (d. default)
61- in (key, v:: Base.KeyIterator{T} ) where {T<: DefaultDictBase } = key in keys (v. dict. d)
62- next (v:: Base.KeyIterator{T} , i) where {T<: DefaultDictBase } = (v. dict. d. keys[i], Base. skip_deleted (v. dict. d,i+ 1 ))
61+ if isdefined (Base, :KeySet ) # 0.7.0-DEV.2722
62+ in (key, v:: Base.KeySet{K,T} ) where {K,T<: DefaultDictBase{K} } = key in keys (v. dict. d)
63+ next (v:: Base.KeySet{K,T} , i) where {K,T<: DefaultDictBase{K} } = (v. dict. d. keys[i], Base. skip_deleted (v. dict. d,i+ 1 ))
64+ else
65+ in (key, v:: Base.KeyIterator{T} ) where {T<: DefaultDictBase } = key in keys (v. dict. d)
66+ next (v:: Base.KeyIterator{T} , i) where {T<: DefaultDictBase } = (v. dict. d. keys[i], Base. skip_deleted (v. dict. d,i+ 1 ))
67+ end
6368next (v:: Base.ValueIterator{T} , i) where {T<: DefaultDictBase } = (v. dict. d. vals[i], Base. skip_deleted (v. dict. d,i+ 1 ))
6469
6570getindex (d:: DefaultDictBase , key) = get! (d. d, key, d. default)
@@ -138,7 +143,11 @@ for _Dict in [:Dict, :OrderedDict]
138143 push! (d:: $DefaultDict , p, q, r... ) = push! (push! (push! (d, p), q), r... )
139144
140145 similar (d:: $DefaultDict{K,V,F} ) where {K,V,F} = $ DefaultDict {K,V,F} (d. d. default)
141- in (key, v:: Base.KeyIterator{T} ) where {T<: $DefaultDict } = key in keys (v. dict. d. d)
146+ if isdefined (Base, :KeySet ) # 0.7.0-DEV.2722
147+ in (key, v:: Base.KeySet{K,T} ) where {K,T<: $DefaultDict{K} } = key in keys (v. dict. d. d)
148+ else
149+ in (key, v:: Base.KeyIterator{T} ) where {T<: $DefaultDict } = key in keys (v. dict. d. d)
150+ end
142151 end
143152end
144153
@@ -182,4 +191,4 @@ isordered(::Type{T}) where {T<:DefaultOrderedDict} = true
182191# @delegate_return_parent DefaultSortedDict.d [ delete!, empty!, setindex!, sizehint! ]
183192
184193# similar{K,V,F}(d::DefaultSortedDict{K,V,F}) = DefaultSortedDict{K,V,F}(d.d.default)
185- # in{T<:DefaultSortedDict}(key, v::Base.KeyIterator {T}) = key in keys(v.dict.d.d)
194+ # in{T<:DefaultSortedDict}(key, v::Base.KeySet {T}) = key in keys(v.dict.d.d)
0 commit comments