Skip to content

Commit 3a0f16a

Browse files
authored
Merge pull request #1078 from pepijndevos/symscope
Widen type bound on symscope to match symbolics
2 parents 9c0c7a7 + d8a0014 commit 3a0f16a

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/systems/abstractsystem.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,15 +271,15 @@ end
271271
abstract type SymScope end
272272

273273
struct LocalScope <: SymScope end
274-
LocalScope(sym::Union{Num, Sym}) = setmetadata(sym, SymScope, LocalScope())
274+
LocalScope(sym::Union{Num, Symbolic}) = setmetadata(sym, SymScope, LocalScope())
275275

276276
struct ParentScope <: SymScope
277277
parent::SymScope
278278
end
279-
ParentScope(sym::Union{Num, Sym}) = setmetadata(sym, SymScope, ParentScope(getmetadata(value(sym), SymScope, LocalScope())))
279+
ParentScope(sym::Union{Num, Symbolic}) = setmetadata(sym, SymScope, ParentScope(getmetadata(value(sym), SymScope, LocalScope())))
280280

281281
struct GlobalScope <: SymScope end
282-
GlobalScope(sym::Union{Num, Sym}) = setmetadata(sym, SymScope, GlobalScope())
282+
GlobalScope(sym::Union{Num, Symbolic}) = setmetadata(sym, SymScope, GlobalScope())
283283

284284
function renamespace(namespace, x)
285285
if x isa Num

test/variable_scope.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@ using ModelingToolkit
22
using Test
33

44
@parameters t
5-
@variables a b(t) c d
5+
@variables a b(t) c d e(t)
66

77
b = ParentScope(b)
88
c = ParentScope(ParentScope(c))
99
d = GlobalScope(d)
1010

11+
# ensure it works on Term too
12+
LocalScope(e.val)
13+
ParentScope(e.val)
14+
GlobalScope(e.val)
15+
1116
renamed(nss, sym) = ModelingToolkit.getname(foldr(ModelingToolkit.renamespace, nss, init=sym))
1217

1318
@test renamed([:foo :bar :baz], a) == :foo₊bar₊baz₊a

0 commit comments

Comments
 (0)