Skip to content

Commit 568fc6b

Browse files
committed
Don't flatten in extend
1 parent 98ebb0c commit 568fc6b

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/systems/abstractsystem.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,7 @@ by default.
948948
function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol=nameof(sys))
949949
T = SciMLBase.parameterless_type(basesys)
950950
ivs = independent_variables(basesys)
951-
if !(typeof(sys) <: T)
951+
if !(sys isa T)
952952
if length(ivs) == 0
953953
sys = convert_system(T, sys)
954954
elseif length(ivs) == 1
@@ -958,11 +958,11 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol=nameo
958958
end
959959
end
960960

961-
eqs = union(equations(basesys), equations(sys))
962-
sts = union(states(basesys), states(sys))
963-
ps = union(parameters(basesys), parameters(sys))
964-
obs = union(observed(basesys), observed(sys))
965-
defs = merge(defaults(basesys), defaults(sys)) # prefer `sys`
961+
eqs = union(get_eqs(basesys), get_eqs(sys))
962+
sts = union(get_states(basesys), get_states(sys))
963+
ps = union(get_ps(basesys), get_ps(sys))
964+
obs = union(get_observed(basesys), get_observed(sys))
965+
defs = merge(get_defaults(basesys), get_defaults(sys)) # prefer `sys`
966966
syss = union(get_systems(basesys), get_systems(sys))
967967

968968
if length(ivs) == 0
@@ -984,7 +984,7 @@ function compose(sys::AbstractSystem, systems::AbstractArray{<:AbstractSystem};
984984
nsys = length(systems)
985985
nsys >= 1 || throw(ArgumentError("There must be at least 1 subsystem. Got $nsys subsystems."))
986986
@set! sys.name = name
987-
@set! sys.systems = systems
987+
@set! sys.systems = [get_systems(sys); systems]
988988
return sys
989989
end
990990
compose(syss::AbstractSystem...; name=nameof(first(syss))) = compose(first(syss), collect(syss[2:end]); name=name)

0 commit comments

Comments
 (0)