@@ -3092,8 +3092,8 @@ function ImplicitDiscreteFunction{iip}(f; kwargs...) where {iip}
30923092 ImplicitDiscreteFunction {iip, FullSpecialize} (f; kwargs... )
30933093end
30943094ImplicitDiscreteFunction {iip} (f:: ImplicitDiscreteFunction ; kwargs... ) where {iip} = f
3095- function ImplicitDiscreteFunction (f; kwargs... )
3096- ImplicitDiscreteFunction {isinplace(f, 5), FullSpecialize} (f; kwargs... )
3095+ function ImplicitDiscreteFunction (f; resid_prototype = __has_resid_prototype (f) ? f . resid_prototype : nothing , kwargs... )
3096+ ImplicitDiscreteFunction {isinplace(f, 5), FullSpecialize} (f; resid_prototype, kwargs... )
30973097end
30983098ImplicitDiscreteFunction (f:: ImplicitDiscreteFunction ; kwargs... ) = f
30993099
@@ -3102,12 +3102,12 @@ function unwrapped_f(f::ImplicitDiscreteFunction, newf = unwrapped_f(f.f))
31023102
31033103 if specialize === NoSpecialize
31043104 ImplicitDiscreteFunction{isinplace (f, 6 ), specialize, Any, Any,
3105- Any, Any, Any}(newf, f. analytic, f. observed, f. sys, f. initialization_data)
3105+ Any, Any, Any}(newf, f. analytic, f. observed, f. sys, f. resid_prototype, f . initialization_data)
31063106 else
31073107 ImplicitDiscreteFunction{isinplace (f, 6 ), specialize, typeof (newf),
31083108 typeof (f. analytic),
31093109 typeof (f. observed), typeof (f. sys), typeof (f. initialization_data)}(newf,
3110- f. analytic, f. observed, f. sys, f. initialization_data)
3110+ f. analytic, f. observed, f. sys, f. resid_prototype, f . initialization_data)
31113111 end
31123112end
31133113
0 commit comments