Skip to content

Commit 7996890

Browse files
refactor: deprecate direct parameter indexing instead of erroring
1 parent d843222 commit 7996890

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/vector_of_array.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,14 @@ function DiffEqArray(vec::AbstractVector{VT},
198198
sys)
199199
end
200200

201-
# AbstractDiffEqArray Interface
201+
function Base.getproperty(A::AbstractDiffEqArray, sym::Symbol)
202+
if sym == SymbolicIndexingInterface.PARAMETER_INDEXING_PROXY_PROPERTY_NAME
203+
return ParameterIndexingProxy(A)
204+
else
205+
return getfield(A, sym)
206+
end
207+
end
208+
202209
SymbolicIndexingInterface.parameter_values(A::AbstractDiffEqArray) = A.p
203210
SymbolicIndexingInterface.symbolic_container(A::AbstractDiffEqArray) = A.sys
204211

@@ -285,7 +292,8 @@ Base.@propagate_inbounds function Base.getindex(A::AbstractDiffEqArray, ::Scalar
285292
return getindex.(A.u, variable_index.((A,), (sym,), eachindex(A.t)))
286293
end
287294
elseif is_parameter(A, sym)
288-
return parameter_values(A)[parameter_index(A, sym)]
295+
Base.depwarn("Indexing with parameters is deprecated. Use `$(nameof(typeof(A))).$(SymbolicIndexingInterface.PARAMETER_INDEXING_PROXY_PROPERTY_NAME)[$sym]` for parameter indexing.", :parameter_getindex)
296+
A.ps[sym]
289297
elseif is_observed(A, sym)
290298
return observed(A, sym).(A.u, (parameter_values(A),), A.t)
291299
else

0 commit comments

Comments
 (0)