@@ -1620,7 +1620,7 @@ defalg(v::AbstractArray) = DEFAULT_STABLE
16201620defalg (v:: AbstractArray{<:Union{Number, Missing}} ) = DEFAULT_UNSTABLE
16211621defalg (v:: AbstractArray{Missing} ) = DEFAULT_UNSTABLE # for method disambiguation
16221622defalg (v:: AbstractArray{Union{}} ) = DEFAULT_UNSTABLE # for method disambiguation
1623- defalg (v:: NTuple ) = DEFAULT_STABLE
1623+ defalg (v) = DEFAULT_STABLE
16241624
16251625"""
16261626 sort!(v; alg::Base.Sort.Algorithm=Base.Sort.defalg(v), lt=isless, by=identity, rev::Bool=false, order::Base.Order.Ordering=Base.Order.Forward)
@@ -1739,13 +1739,20 @@ function sort!(v::AbstractVector{T};
17391739end
17401740
17411741"""
1742- sort(v::Union{AbstractVector, NTuple}; alg::Base.Sort.Algorithm=Base.Sort.defalg(v), lt=isless, by=identity, rev::Bool=false, order::Base.Order.Ordering=Base.Order.Forward)
1742+ sort(v; alg::Base.Sort.Algorithm=Base.Sort.defalg(v), lt=isless, by=identity, rev::Bool=false, order::Base.Order.Ordering=Base.Order.Forward)
1743+ sort(v::NTuple; kws...)::NTuple
17431744
17441745Variant of [`sort!`](@ref) that returns a sorted copy of `v` leaving `v` itself unmodified.
17451746
1747+ When calling `sort` on the [`keys`](@ref) or [`values](@ref) of a dictionary, `v` is
1748+ collected and then sorted in place.
1749+
17461750!!! compat "Julia 1.12"
17471751 Sorting `NTuple`s requires Julia 1.12 or later.
17481752
1753+ !!! compat "Julia 1.13"
1754+ Sorting keys sets and values iterators requires Julia 1.13 or later.
1755+
17491756# Examples
17501757```jldoctest
17511758julia> v = [3, 1, 2];
@@ -1761,10 +1768,18 @@ julia> v
17611768 3
17621769 1
17631770 2
1771+
1772+ julia> sort(values(Dict('a'=>2, 'b'=>1)))
1773+ 2-element Vector{Int64}:
1774+ 1
1775+ 2
17641776```
17651777"""
17661778sort (v:: AbstractVector ; kws... ) = sort! (copymutable (v); kws... )
17671779
1780+ const COLLECT_ON_SORT_TYPES = Union{Base. KeySet, Base. ValueIterator}
1781+ sort (v:: COLLECT_ON_SORT_TYPES ; kws... ) = sort! (collect (v); kws... )
1782+
17681783function sort (x:: NTuple ;
17691784 alg:: Algorithm = defalg (x),
17701785 lt= isless,
0 commit comments