Skip to content

Commit d50d987

Browse files
committed
more fixes
1 parent 27c923c commit d50d987

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

src/systems/abstractsystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,11 @@ function namespace_expr(O::Sym,name,ivname)
193193
O.name == ivname ? O : rename(O,renamespace(name,O.name))
194194
end
195195

196+
_symparam(s::Symbolic{T}) where {T} = T
196197
function namespace_expr(O,name,ivname) where {T}
197198
if istree(O)
198199
if operation(O) isa Sym
199-
Term{symtype(O)}(rename(operation(O),renamespace(name,operation(O).name)),namespace_expr.(arguments(O),name,ivname))
200+
Term{_symparam(O)}(rename(operation(O),renamespace(name,operation(O).name)),namespace_expr.(arguments(O),name,ivname))
200201
else
201202
similarterm(O,operation(O),namespace_expr.(arguments(O),name,ivname))
202203
end

src/utils.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ julia> substitute(ex, Dict([x => z, sin(z) => z^2]))
131131
(z(t) + y) + (z(t) ^ 2)
132132
```
133133
"""
134-
substitute(expr::Num, s::Union{Pair, Vector, Dict}; kw...) = Num(substituter(s)(value(expr); kw...))
134+
# cannot use Union{Pair, Vector, Dict} -- leads to ambiguity
135+
substitute(expr::Num, s::Pair; kw...) = Num(substituter(s)(value(expr); kw...))
136+
substitute(expr::Num, s::Vector; kw...) = Num(substituter(s)(value(expr); kw...))
137+
substitute(expr::Num, s::Dict; kw...) = Num(substituter(s)(value(expr); kw...))
135138
# TODO: move this to SymbolicUtils
136139
substitute(expr, s::Pair; kw...) = substituter([s[1] => s[2]])(expr; kw...)
137140
substitute(expr, s::Vector; kw...) = substituter(s)(expr; kw...)

test/function_registration.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ foo(x, y) = sin(x) * cos(y)
7676
@parameters t; @variables x(t) y(t) z(t); @derivatives D'~t;
7777
@register foo(x, y)
7878

79-
using ModelingToolkit: value
79+
using ModelingToolkit: value, arguments, operation
8080
expr = value(foo(x, y))
8181
@test operation(expr) === foo
8282
@test arguments(expr)[1] === value(x)

0 commit comments

Comments
 (0)