diff --git a/src/systems/abstractsystem.jl b/src/systems/abstractsystem.jl index 83a28a259c..7bb8ef9158 100644 --- a/src/systems/abstractsystem.jl +++ b/src/systems/abstractsystem.jl @@ -1424,7 +1424,12 @@ function markio!(state, orig_inputs, inputs, outputs; check = true) outputset = Dict{Any, Bool}(o => false for o in outputs) for (i, v) in enumerate(fullvars) if v in keys(inputset) - v = setio(v, true, false) + if v in keys(outputset) + v = setio(v, true, true) + outputset[v] = true + else + v = setio(v, true, false) + end inputset[v] = true fullvars[i] = v elseif v in keys(outputset) diff --git a/test/linearize.jl b/test/linearize.jl index e72f63f8d2..8561d26819 100644 --- a/test/linearize.jl +++ b/test/linearize.jl @@ -19,6 +19,13 @@ lsys, ssys = linearize(sys, [r], [y]) @test lsys.C[] == 1 @test lsys.D[] == 0 +lsys, ssys = linearize(sys, [r], [r]) + +@test lsys.A[] == -2 +@test lsys.B[] == 1 +@test lsys.C[] == 0 +@test lsys.D[] == 1 + ## ```