Skip to content

Commit 9c74445

Browse files
committed
Reduce number of getproperty and setproperty specializations
1 parent 67835e6 commit 9c74445

File tree

3 files changed

+4
-25
lines changed

3 files changed

+4
-25
lines changed

src/DataStructures.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ module DataStructures
5757

5858
export findkey
5959

60-
# _getproperty(x::Nothing, f::Symbol) = @assert false
61-
_setproperty!(x::Nothing, f::Symbol, v) = @assert false
62-
6360
include("delegate.jl")
6461

6562
include("deque.jl")

src/avl_tree.jl

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,13 @@ end
1414

1515
AVLTreeNode(d) = AVLTreeNode{Any}(d)
1616

17-
AVLTreeNode_or_null{T} = Union{AVLTreeNode{T}, Nothing}
18-
19-
# _getproperty(x::AVLTreeNode{T}, f::Symbol) where {T} = getfield(x, f)
20-
# Base.getproperty(x::AVLTreeNode_or_null{T}, f::Symbol) where {T} =
21-
# _getproperty(x, f)
22-
2317
_setproperty!(x::AVLTreeNode{T}, f, v) where {T} =
24-
# setfield!(x, f, convert(fieldtype(typeof(x), f), v))
2518
setfield!(x, f, v)
26-
_setproperty!(x::AVLTreeNode{T}, f, ::Nothing) where {T} =
27-
setfield!(x, f, nothing)
28-
_setproperty!(x::AVLTreeNode{T}, f, v::AVLTreeNode{T}) where {T} =
29-
setfield!(x, f, v)
30-
Base.setproperty!(x::AVLTreeNode_or_null{T}, f::Symbol, v) where {T} =
19+
Base.setproperty!(x::AVLTreeNode{T}, f::Symbol, v) where {T} =
3120
_setproperty!(x, f, v)
3221

22+
AVLTreeNode_or_null{T} = Union{AVLTreeNode{T}, Nothing}
23+
3324
mutable struct AVLTree{T}
3425
root::AVLTreeNode_or_null{T}
3526
count::Int

src/red_black_tree.jl

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,9 @@ end
1717
RBTreeNode() = RBTreeNode{Any}()
1818
RBTreeNode(d) = RBTreeNode{Any}(d)
1919

20-
# _getproperty(x::RBTreeNode{K}, f) where {K} = getfield(x, f)
21-
# Base.getproperty(x::Union{Nothing, RBTreeNode{K}}, f::Symbol) where {K} =
22-
# _getproperty(x, f)
23-
2420
_setproperty!(x::RBTreeNode{K}, f, v) where {K} =
25-
# setfield!(x, f, convert(fieldtype(typeof(x), f), v))
26-
setfield!(x, f, v)
27-
_setproperty!(x::RBTreeNode{K}, f, ::Nothing) where {K} =
28-
setfield!(x, f, nothing)
29-
_setproperty!(x::RBTreeNode{K}, f, v::RBTreeNode{K}) where {K} =
3021
setfield!(x, f, v)
31-
Base.setproperty!(x::Union{Nothing, RBTreeNode{K}}, f::Symbol, v) where {K} =
22+
Base.setproperty!(x::RBTreeNode{K}, f::Symbol, v) where {K} =
3223
_setproperty!(x, f, v)
3324

3425
function create_null_node(K::Type)

0 commit comments

Comments
 (0)