@@ -472,15 +472,18 @@ function namespace_defaults(sys)
472472 for (k, v) in pairs (defs))
473473end
474474
475- function namespace_equations (sys:: AbstractSystem )
475+ function namespace_equations (sys:: AbstractSystem , ivs = nothing )
476476 eqs = equations (sys)
477477 isempty (eqs) && return Equation[]
478- map (eq -> namespace_equation (eq, sys), eqs)
478+ map (eq -> namespace_equation (eq, sys; ivs ), eqs)
479479end
480480
481- function namespace_equation (eq:: Equation , sys, n = nameof (sys))
482- _lhs = namespace_expr (eq. lhs, sys, n)
483- _rhs = namespace_expr (eq. rhs, sys, n)
481+ function namespace_equation (eq:: Equation ,
482+ sys,
483+ n = nameof (sys);
484+ ivs = independent_variables (sys))
485+ _lhs = namespace_expr (eq. lhs, sys, n; ivs)
486+ _rhs = namespace_expr (eq. rhs, sys, n; ivs)
484487 _lhs ~ _rhs
485488end
486489
@@ -490,15 +493,14 @@ function namespace_assignment(eq::Assignment, sys)
490493 Assignment (_lhs, _rhs)
491494end
492495
493- function namespace_expr (O, sys, n = nameof (sys))
494- ivs = independent_variables (sys)
496+ function namespace_expr (O, sys, n = nameof (sys); ivs = independent_variables (sys))
495497 O = unwrap (O)
496498 if any (isequal (O), ivs)
497499 return O
498500 elseif istree (O)
499501 T = typeof (O)
500502 renamed = let sys = sys, n = n, T = T
501- map (a -> namespace_expr (a, sys, n):: Any , arguments (O))
503+ map (a -> namespace_expr (a, sys, n; ivs ):: Any , arguments (O))
502504 end
503505 if isvariable (O)
504506 # Use renamespace so the scope is correct, and make sure to use the
@@ -513,7 +515,7 @@ function namespace_expr(O, sys, n = nameof(sys))
513515 renamespace (n, O)
514516 elseif O isa Array
515517 let sys = sys, n = n
516- map (o -> namespace_expr (o, sys, n), O)
518+ map (o -> namespace_expr (o, sys, n; ivs ), O)
517519 end
518520 else
519521 O
0 commit comments