Skip to content

Commit 34b150b

Browse files
committed
fix: add missing set_node! for parametric expressions
1 parent facdaae commit 34b150b

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

src/ParametricExpression.jl

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -126,21 +126,29 @@ function leaf_copy(t::ParametricNode{T}) where {T}
126126
return n
127127
end
128128
end
129-
function leaf_copy!(dest::N, src::N) where {T,N<:ParametricNode{T}}
130-
dest.degree = 0
131-
if src.constant
132-
dest.constant = true
133-
dest.val = src.val
134-
elseif !src.is_parameter
135-
dest.constant = false
136-
dest.is_parameter = false
137-
dest.feature = src.feature
129+
function set_node!(tree::ParametricNode, new_tree::ParametricNode)
130+
tree.degree = new_tree.degree
131+
if new_tree.degree == 0
132+
if new_tree.constant
133+
tree.constant = true
134+
tree.val = new_tree.val
135+
elseif !new_tree.is_parameter
136+
tree.constant = false
137+
tree.is_parameter = false
138+
tree.feature = new_tree.feature
139+
else
140+
tree.constant = false
141+
tree.is_parameter = true
142+
tree.parameter = new_tree.parameter
143+
end
138144
else
139-
dest.constant = false
140-
dest.is_parameter = true
141-
dest.parameter = src.parameter
145+
tree.op = new_tree.op
146+
tree.l = new_tree.l
147+
if new_tree.degree == 2
148+
tree.r = new_tree.r
149+
end
142150
end
143-
return dest
151+
return nothing
144152
end
145153
function leaf_convert(::Type{N}, t::ParametricNode) where {T,N<:ParametricNode{T}}
146154
if t.constant

0 commit comments

Comments
 (0)