Skip to content

Commit 3255fb5

Browse files
committed
Add metadata to all similarterm with missing metadata
1 parent f5f8ffe commit 3255fb5

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

src/systems/abstractsystem.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,8 @@ function LocalScope(sym::Union{Num, Symbolic, Symbolics.Arr{Num}})
751751
if istree(sym) && operation(sym) === getindex
752752
args = arguments(sym)
753753
a1 = setmetadata(args[1], SymScope, LocalScope())
754-
similarterm(sym, operation(sym), [a1, args[2:end]...])
754+
similarterm(sym, operation(sym), [a1, args[2:end]...];
755+
metadata = metadata(sym))
755756
else
756757
setmetadata(sym, SymScope, LocalScope())
757758
end
@@ -767,7 +768,8 @@ function ParentScope(sym::Union{Num, Symbolic, Symbolics.Arr{Num}})
767768
args = arguments(sym)
768769
a1 = setmetadata(args[1], SymScope,
769770
ParentScope(getmetadata(value(args[1]), SymScope, LocalScope())))
770-
similarterm(sym, operation(sym), [a1, args[2:end]...])
771+
similarterm(sym, operation(sym), [a1, args[2:end]...];
772+
metadata = metadata(sym))
771773
else
772774
setmetadata(sym, SymScope,
773775
ParentScope(getmetadata(value(sym), SymScope, LocalScope())))
@@ -785,7 +787,8 @@ function DelayParentScope(sym::Union{Num, Symbolic, Symbolics.Arr{Num}}, N)
785787
args = arguments(sym)
786788
a1 = setmetadata(args[1], SymScope,
787789
DelayParentScope(getmetadata(value(args[1]), SymScope, LocalScope()), N))
788-
similarterm(sym, operation(sym), [a1, args[2:end]...])
790+
similarterm(sym, operation(sym), [a1, args[2:end]...];
791+
metadata = metadata(sym))
789792
else
790793
setmetadata(sym, SymScope,
791794
DelayParentScope(getmetadata(value(sym), SymScope, LocalScope()), N))
@@ -800,7 +803,8 @@ function GlobalScope(sym::Union{Num, Symbolic, Symbolics.Arr{Num}})
800803
if istree(sym) && operation(sym) == getindex
801804
args = arguments(sym)
802805
a1 = setmetadata(args[1], SymScope, GlobalScope())
803-
similarterm(sym, operation(sym), [a1, args[2:end]...])
806+
similarterm(sym, operation(sym), [a1, args[2:end]...];
807+
metadata = metadata(sym))
804808
else
805809
setmetadata(sym, SymScope, GlobalScope())
806810
end

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@ function delay_to_function(expr, iv, sts, ps, h)
232232
elseif istree(expr)
233233
return similarterm(expr,
234234
operation(expr),
235-
map(x -> delay_to_function(x, iv, sts, ps, h), arguments(expr)))
235+
map(x -> delay_to_function(x, iv, sts, ps, h), arguments(expr));
236+
metadata = metadata(expr))
236237
else
237238
return expr
238239
end

src/utils.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@ function detime_dvs(op)
2121
elseif issym(operation(op))
2222
Sym{Real}(nameof(operation(op)))
2323
else
24-
similarterm(op, operation(op), detime_dvs.(arguments(op)))
24+
similarterm(op, operation(op), detime_dvs.(arguments(op));
25+
metadata = metadata(op))
2526
end
2627
end
2728

2829
function retime_dvs(op, dvs, iv)
2930
issym(op) && return Sym{FnType{Tuple{symtype(iv)}, Real}}(nameof(op))(iv)
3031
istree(op) ?
31-
similarterm(op, operation(op), retime_dvs.(arguments(op), (dvs,), (iv,))) :
32+
similarterm(op, operation(op), retime_dvs.(arguments(op), (dvs,), (iv,));
33+
metadata = metadata(op)) :
3234
op
3335
end
3436

0 commit comments

Comments
 (0)