|
87 | 87 | function ParametricExpression( |
88 | 88 | tree::ParametricNode{T1}; |
89 | 89 | operators::Union{AbstractOperatorEnum,Nothing}, |
90 | | - variable_names, |
| 90 | + variable_names=nothing, |
91 | 91 | parameters::AbstractMatrix{T2}, |
92 | | - parameter_names, |
| 92 | + parameter_names=nothing, |
93 | 93 | ) where {T1,T2} |
94 | 94 | if !isnothing(parameter_names) |
95 | 95 | @assert size(parameters, 1) == length(parameter_names) |
@@ -202,18 +202,16 @@ function get_variable_names( |
202 | 202 | ex::ParametricExpression, |
203 | 203 | variable_names::Union{Nothing,AbstractVector{<:AbstractString}}=nothing, |
204 | 204 | ) |
205 | | - return variable_names === nothing ? ex.metadata.variable_names : variable_names |
| 205 | + return if variable_names !== nothing |
| 206 | + variable_names |
| 207 | + elseif hasproperty(ex.metadata, :variable_names) |
| 208 | + ex.metadata.variable_names |
| 209 | + else |
| 210 | + nothing |
| 211 | + end |
206 | 212 | end |
207 | | -@inline _copy_with_nothing(x) = copy(x) |
208 | | -@inline _copy_with_nothing(::Nothing) = nothing |
209 | 213 | function Base.copy(ex::ParametricExpression; break_sharing::Val=Val(false)) |
210 | | - return ParametricExpression( |
211 | | - copy(ex.tree; break_sharing=break_sharing); |
212 | | - operators=_copy_with_nothing(ex.metadata.operators), |
213 | | - variable_names=_copy_with_nothing(ex.metadata.variable_names), |
214 | | - parameters=_copy_with_nothing(ex.metadata.parameters), |
215 | | - parameter_names=_copy_with_nothing(ex.metadata.parameter_names), |
216 | | - ) |
| 214 | + return ParametricExpression(copy(ex.tree; break_sharing), copy(ex.metadata)) |
217 | 215 | end |
218 | 216 | ############################################################################### |
219 | 217 |
|
|
0 commit comments