diff --git a/src/systems/nonlinear/nonlinearsystem.jl b/src/systems/nonlinear/nonlinearsystem.jl index b5256ca4ca..c211d02780 100644 --- a/src/systems/nonlinear/nonlinearsystem.jl +++ b/src/systems/nonlinear/nonlinearsystem.jl @@ -712,6 +712,9 @@ function SciMLBase.SCCNonlinearProblem{iip}(sys::NonlinearSystem, u0map, k = unwrap(k) v = unwrap(v) T = symtype(k) + while T isa Union + T = promote_type(T.a, T.b) + end buf = get!(() -> Any[], cachevars, T) push!(buf, v) buf = get!(() -> Any[], cacheexprs, T)