@@ -2835,15 +2835,14 @@ function Symbolics.substitute(sys::AbstractSystem, rules::Union{Vector{<:Pair},
28352835    elseif  sys isa  ODESystem
28362836        rules =  todict (map (r ->  Symbolics. unwrap (r[1 ]) =>  Symbolics. unwrap (r[2 ]),
28372837            collect (rules)))
2838-         eqs =  fast_substitute (get_eqs (sys), rules)
2839-         pdeps =  fast_substitute (get_parameter_dependencies (sys), rules)
2840-         defs =  Dict (fast_substitute (k, rules) =>  fast_substitute (v, rules)
2838+         newsys =  @set  sys. eqs =  fast_substitute (get_eqs (sys), rules)
2839+         @set!  newsys. parameter_dependencies =  fast_substitute (
2840+             get_parameter_dependencies (sys), rules)
2841+         @set!  newsys. defaults =  Dict (fast_substitute (k, rules) =>  fast_substitute (v, rules)
28412842        for  (k, v) in  get_defaults (sys))
2842-         guess  =  Dict (fast_substitute (k, rules) =>  fast_substitute (v, rules)
2843+         @set!  newsys . guesses  =  Dict (fast_substitute (k, rules) =>  fast_substitute (v, rules)
28432844        for  (k, v) in  get_guesses (sys))
2844-         subsys =  map (s ->  substitute (s, rules), get_systems (sys))
2845-         ODESystem (eqs, get_iv (sys); name =  nameof (sys), defaults =  defs,
2846-             guesses =  guess, parameter_dependencies =  pdeps, systems =  subsys)
2845+         @set!  newsys. systems =  map (s ->  substitute (s, rules), get_systems (sys))
28472846    else 
28482847        error (" substituting symbols is not supported for $(typeof (sys)) " 
28492848    end 
0 commit comments