Skip to content

Commit ebdd8b6

Browse files
authored
Merge pull request #855 from JuliaRobotics/22Q1/bugfix/fix_inferdim_depr
Fix inferdim->infoPerCoord bug and Escalate inferdim depwarn to error
2 parents fdd36d4 + 303d065 commit ebdd8b6

File tree

2 files changed

+26
-45
lines changed

2 files changed

+26
-45
lines changed

src/Deprecated.jl

Lines changed: 25 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -10,75 +10,56 @@ function Base.convert(::Type{DateTime}, ts::ZonedDateTime)
1010
end
1111

1212
## ================================================================================
13-
## Deprecate before v0.17
13+
## Deprecate before v0.19 - Kept longer with error
1414
##=================================================================================
1515

16-
17-
Base.propertynames(x::VariableNodeData, private::Bool=false) = private ? (:inferdim, :infoPerCoord) : (:infoPerCoord,)
18-
1916
Base.getproperty(x::VariableNodeData,f::Symbol) = begin
2017
if f == :inferdim
21-
Base.depwarn("vnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :getproperty)
22-
# @warn "vnd.inferdim is deprecated, use .infoPerCoord instead"
23-
getfield(x, :infoPerCoord)
18+
error("vnd.inferdim::Float64 was deprecated and is now obsolete, use vnd.infoPerCoord::Vector{Float64} instead")
2419
else
2520
getfield(x,f)
2621
end
2722
end
2823

29-
function Base.setproperty!(x::VariableNodeData, f::Symbol, val::Real)
30-
_val = if f == :inferdim
31-
Base.depwarn("vnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :setproperty!)
32-
f = :infoPerCoord
33-
Float64[val;]
34-
else
35-
val
36-
end
37-
return setfield!(x, f, _val)
38-
end
39-
40-
function Base.setproperty!(x::VariableNodeData, f::Symbol, val::AbstractVector{<:Real})
24+
function Base.setproperty!(x::VariableNodeData, f::Symbol, val)
4125
if f == :inferdim
42-
Base.depwarn("vnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :setproperty!)
43-
f = :infoPerCoord
26+
error("vnd.inferdim::Float64 was deprecated and is now obsolete, use vnd.infoPerCoord::Vector{Float64} instead")
4427
end
45-
return setfield!(x, f, val)
28+
return setfield!(x, f, convert(fieldtype(typeof(x), f), val))
4629
end
4730

48-
#
49-
50-
Base.propertynames(x::PackedVariableNodeData, private::Bool=false) = private ? (:inferdim, :infoPerCoord) : (:infoPerCoord,)
51-
5231
Base.getproperty(x::PackedVariableNodeData,f::Symbol) = begin
5332
if f == :inferdim
54-
Base.depwarn("pvnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :getproperty)
55-
getfield(x, :infoPerCoord)
33+
error("pvnd.inferdim::Float64 was deprecated and is now obsolete, use vnd.infoPerCoord::Vector{Float64} instead")
5634
else
5735
getfield(x,f)
5836
end
5937
end
6038

61-
function Base.setproperty!(x::PackedVariableNodeData, f::Symbol, val::Real)
62-
_val = if f == :inferdim
63-
Base.depwarn("pvnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :setproperty!)
64-
f = :infoPerCoord
65-
Float64[val;]
66-
else
67-
val
68-
end
69-
return setfield!(x, f, _val)
70-
end
71-
72-
function Base.setproperty!(x::PackedVariableNodeData, f::Symbol, val::AbstractVector{<:Real})
39+
function Base.setproperty!(x::PackedVariableNodeData, f::Symbol, val)
7340
if f == :inferdim
74-
Base.depwarn("pvnd.inferdim::Float64 is deprecated, use vnd.infoPerCoord::Vector{Float64} instead", :setproperty!)
75-
f = :infoPerCoord
41+
error("pvnd.inferdim::Float64 was deprecated and is now obsolete, use vnd.infoPerCoord::Vector{Float64} instead")
7642
end
77-
return setfield!(x, f, val)
43+
return setfield!(x, f, convert(fieldtype(typeof(x), f), val))
7844
end
7945

8046

81-
@deprecate VariableNodeData(val::Vector,bw::AbstractMatrix{<:Real},BayesNetOutVertIDs::AbstractVector{Symbol},dimIDs::AbstractVector{Int},dims::Int,eliminated::Bool,BayesNetVertID::Symbol,separator::AbstractVector{Symbol},variableType,initialized::Bool,inferdim::Real,w...;kw...) VariableNodeData(val,bw,BayesNetOutVertIDs,dimIDs,dims,eliminated,BayesNetVertID,separator,variableType,initialized,Float64[inferdim;],w...;kw...)
47+
48+
function VariableNodeData(val::Vector,
49+
bw::AbstractMatrix{<:Real},
50+
BayesNetOutVertIDs::AbstractVector{Symbol},
51+
dimIDs::AbstractVector{Int},
52+
dims::Int,
53+
eliminated::Bool,
54+
BayesNetVertID::Symbol,
55+
separator::AbstractVector{Symbol},
56+
variableType,
57+
initialized::Bool,
58+
inferdim::Real,
59+
w...; kw...)
60+
error("VariableNodeData field inferdim was deprecated and is now obsolete, use infoPerCoord instead")
61+
end
62+
8263

8364

8465
## ================================================================================

src/entities/DFGVariable.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ function VariableNodeData(variableType::T; solveKey::Symbol=:default) where T <:
134134
# BW[1] = zeros(getDimension(T))
135135
VariableNodeData( P0, BW, Symbol[], Int[],
136136
0, false, :NOTHING, Symbol[],
137-
variableType, false, 0.0, false,
137+
variableType, false, [0.0], false,
138138
false, 0, 0, solveKey )
139139
end
140140

0 commit comments

Comments
 (0)