Skip to content

Commit bae73b3

Browse files
committed
add deprecation warning for developers
1 parent 34795e3 commit bae73b3

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/boundingboxes.jl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,22 @@
22

33
Rect(p::AbstractGeometry{N, T}) where {N, T} = Rect{N, T}(p)
44
RectT{T}(p::AbstractGeometry{N}) where {N, T} = Rect{N, T}(p)
5-
Rect{N}(p::AbstractGeometry{_N, T}) where {N, _N, T} = Rect{N, T}(p)
5+
Rect{N}(p::AbstractGeometry{_N, T}) where {N <: Val, _N, T} = Rect{N, T}(p)
66

77
Rect(p::AbstractArray{<: VecTypes{N, T}}) where {N, T} = Rect{N, T}(p)
88
RectT{T}(p::AbstractArray{<: VecTypes{N}}) where {N, T} = Rect{N, T}(p)
99
Rect{N}(p::AbstractArray{<: VecTypes{_N, T}}) where {N, _N, T} = Rect{N, T}(p)
1010

11-
# compat: bounding boxes also defined Rect{T} constructors
12-
# This is not really compatible with Rect{N}...
13-
# How do you even deprecate this?
14-
# @deprecate Rect{T}(x::AbstractGeometry) where {T <: Number} RectT{T}(x) where {T}
15-
# @deprecate Rect{T}(x::AbstractArray) where {T <: Number} RectT{T}(x) where {T}
16-
1711
# Implementations
1812
# Specialize fully typed Rect constructors
19-
Rect{N, T}(p::AbstractGeometry) where {N, T} = Rect{N, T}(coordinates(p))
13+
function Rect{N, T}(geom::AbstractGeometry) where {N, T <: Number}
14+
if applicable(Rect{T}, geom)
15+
@warn "`Rect{T}(geom)` is deprecated as the final boundingbox method. Define `Rect{N, T}(geom)` instead."
16+
return Rect{T}(geom)
17+
else
18+
return Rect{N, T}(coordinates(geom))
19+
end
20+
end
2021

2122
function bbox_dim_check(trg, src::Integer)
2223
@assert trg isa Integer "Rect{$trg, $T1} is invalid. This may have happened due to calling Rect{$N1}(obj) to get a bounding box."
@@ -68,4 +69,4 @@ end
6869
# TODO: exact implementation that doesn't rely on coordinates
6970
# function Rect{N, T}(a::Cylinder) where {N, T}
7071
# return Rect{N, T}(...)
71-
# end
72+
# end

0 commit comments

Comments
 (0)