Skip to content

Commit 353a340

Browse files
authored
Merge pull request #687 from JuliaCollections/ox/misingheapconstructor
Fix BinaryMaxHeap type alias
2 parents 355a7a8 + b316993 commit 353a340

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "DataStructures"
22
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
3-
version = "0.18.6"
3+
version = "0.18.7"
44

55

66
[deps]

src/heaps/binary_heap.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,15 @@ BinaryHeap(ordering::Base.Ordering, xs::AbstractVector{T}) where T = BinaryHeap{
5050
BinaryHeap{T, O}() where {T, O<:Base.Ordering} = BinaryHeap{T}(O())
5151
BinaryHeap{T, O}(xs::AbstractVector) where {T, O<:Base.Ordering} = BinaryHeap{T}(O(), xs)
5252

53+
const DefaultReverseOrdering = Base.ReverseOrdering{Base.ForwardOrdering}
54+
55+
# These constructors needed for BinaryMaxHeap, until we have https://github.com/JuliaLang/julia/pull/37822
56+
BinaryHeap{T, DefaultReverseOrdering}() where {T} = BinaryHeap{T}(Base.Reverse)
57+
BinaryHeap{T, DefaultReverseOrdering}(xs::AbstractVector) where {T} = BinaryHeap{T}(Base.Reverse, xs)
58+
5359
# Forward/reverse ordering type aliases
5460
const BinaryMinHeap{T} = BinaryHeap{T, Base.ForwardOrdering}
55-
const BinaryMaxHeap{T} = BinaryHeap{T, Base.ReverseOrdering}
61+
const BinaryMaxHeap{T} = BinaryHeap{T, DefaultReverseOrdering}
5662

5763
BinaryMinHeap(xs::AbstractVector{T}) where T = BinaryMinHeap{T}(xs)
5864
BinaryMaxHeap(xs::AbstractVector{T}) where T = BinaryMaxHeap{T}(xs)

test/test_binheap.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@
2929
@test true
3030
end
3131

32+
@testset "Type Aliases" begin
33+
# https://github.com/JuliaCollections/DataStructures.jl/issues/686
34+
@test BinaryMaxHeap{Int}() isa BinaryMaxHeap{Int}
35+
@test BinaryMinHeap{Int}() isa BinaryMinHeap{Int}
36+
end
37+
3238
@testset "implicit conversion" begin
3339
BinaryHeap{Float64, Base.ForwardOrdering}(vs)
3440
BinaryMinHeap{Float64}(vs)

0 commit comments

Comments
 (0)